diff --git a/local/local/.gitkeep b/local/local/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/I18n/.gitkeep b/local/local/I18n/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/backup/.gitkeep b/local/local/backup/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/backup/update.sql b/local/local/backup/update.sql deleted file mode 100644 index c6fb6f41..00000000 --- a/local/local/backup/update.sql +++ /dev/null @@ -1,11704 +0,0 @@ - -SET foreign_key_checks=0; - -DROP TABLE `accessory`; - -CREATE TABLE `accessory` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `accessory` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_address_product_id` (`product_id`), - KEY `idx_address_accessory` (`accessory`), - CONSTRAINT `fk_accessory_accessory` FOREIGN KEY (`accessory`) REFERENCES `product` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_accessory_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `address`; - -CREATE TABLE `address` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(255) DEFAULT NULL, - `customer_id` int(11) NOT NULL, - `title_id` int(11) NOT NULL, - `company` varchar(255) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `address1` varchar(255) NOT NULL, - `address2` varchar(255) NOT NULL, - `address3` varchar(255) NOT NULL, - `zipcode` varchar(10) NOT NULL, - `city` varchar(255) NOT NULL, - `country_id` int(11) NOT NULL, - `state_id` int(11) DEFAULT NULL, - `phone` varchar(20) DEFAULT NULL, - `cellphone` varchar(20) DEFAULT NULL, - `is_default` tinyint(4) DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_address_customer_id` (`customer_id`), - KEY `idx_address_customer_title_id` (`title_id`), - KEY `idx_address_country_id` (`country_id`), - KEY `fk_address_state_id_idx` (`state_id`), - CONSTRAINT `fk_address_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`), - CONSTRAINT `fk_address_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_address_customer_title_id` FOREIGN KEY (`title_id`) REFERENCES `customer_title` (`id`), - CONSTRAINT `fk_address_state_id` FOREIGN KEY (`state_id`) REFERENCES `state` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `address` VALUES("3","Mon adresse","33","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","64","","","0605040302","1","2017-04-12 23:28:45","2017-05-11 20:51:13"); -INSERT INTO `address` VALUES("5","Mon adresse","34","1","ACIG","Pascal ","PUJALTE","Chemin de la Serre","","","31370","POUCHARRAMET","64","","","0668579878","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("6","Domicile","35","1","","Jean-Marc","PUGINIER","10 rue des près","","","31780","CASTELGINEST","64","","","0612765170","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("7","Domicile","36","1","","Gérald","PASTEL","----","","","31000","TOULOUSE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("8","Domicile","37","1","","Michel","MURAT","48 rue du Grand Vigne","","","31140","ST LOUP CAMMAS","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("9","Domicile","38","1","","Guillaume","ESPARDELIER","13 rue Dalmatie","","","31500","TOULOUSE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("10","Mon adresse","40","1","","François","GAUTREAU","16 rte de l\'Isle Jourdain","","","32600","SEGOUFIELLE","64","","","06.72.06.93.87","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("11","Paypal_Address","41","1","","Matthieu","SALMONESE","22 rue de la Malnoue","","","18700","AUBIGNY SUR NERE","64","","","0623607248","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("12","Mon adresse","43","1","PEÑA ALMA FLAMENCA","Pascal","GUYON","11 rue Jeanne de Ségla","","","31200","TOULOUSE","64","","0534258121","0665442394","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("13","boucherie traiteur","44","1","BOUCHERIE TRAITEUR","Patrick","MARZARI","place de la république","","","31120","portet sur garonne","64","","05.61.72.07.27","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("14","BUREAUX","45","1","LARIMMO","LARY","RALUY","22 RUE LABRUYERE","","","31300","TOULOUSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("15","Achat THE","46","1","","Philippe","PROTTI","4 rue de la Liberté","","","25200","BETHONCOURT","64","","","0685320095","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("16","Mon adresse","47","1","","Jean-Marc","MOLINIÉ","33 rue St Cyrice","","","12000","RODEZ","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("17","gouret nicolas","48","1","CTA78 AUTOSÉCURITÉ","nicolas","GOURET","rue de thiverval","zi de la vallee yart","","78640","st germain de la grange","64","","0134897447","0680343788","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("18","Salon","64","2","COIFFURE VIOLETTE","Violette","GUARDIA","8 rue Henri IV","","","81100","CASTRES","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("19","bureau","65","2","BELOTTI IMMOBILIER","Celine","BELOTTI","28 rue Principale","","","31120","PORTET-SUR-GARONNE","64","","05.61.72.06.49","06.24.37.11.36","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("20","Domicile","66","2","","Virginie","RASPAUD","71, bd de Peyramont - Appt B19","","","31600","MURET","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("21","Domicile","67","2","","Karine","RENAULT-JOLY","13 rue de l\'aviateur","","","81000","ALBI","64","","","0607498838","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("23","Domicile","68","2","","Volatiana","RAELISON","14 rue François Peyrille","","","31780","CASTELGINEST","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("24","Domicile","69","2","","Emmanuelle","STACCHETTI","9 rue Delmotte","","","31400","TOULOUSE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("25","Domicile","70","2","","Catherine","KOGEL","------","","","81000","ALBI","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("26","Domicile","71","2","","Pauline","DELMOTTE","----","","","31000","TOULOUSE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("27","Total Access Portet","72","2","SARL AE2C","Elvire","CHANGEAT","106 route d\'Espagne","","","31120","PORTET-SUR-GARONNE","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("28","Total Villeneuve-Tolosane","72","2","SARL PAC2E","Elvire","CHANGEAT","Relais du Blanquet","","","31270","VILLENEUVE TOLOSANE","64","","0561920851","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("29","Domicile","74","2","","Sandra","MARON","22 rue du puits","","","77700","MAGNY LE HONGRE","64","","","0605040302","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("30","Domicile","75","2","","Marie-Christine","GARCIA","----","","","31130","BALMA","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("31","Domicile","76","2","","Sophie","THOMAS","15 Cours de la Martinique","","","33000","BORDEAUX","64","","0504030201","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("32","Paypal_Address","77","2","","Sandra","MARON","22 rue du Puits","","","77700","MAGNY LE HONGRE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("33","MAMAN","77","2","","Sandra","MARON","33 rue de la Liberté","","","92220","BAGNEUX","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("34","Mon adresse","78","2","","Myriam","BELOTTI","10 route de rieumes","","","31600","LHERM","64","","","0612217819","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("35","Mon adresse","79","2","","Stéphanie","BELOTTI","5 rue des crouzettes","","","31120","PORTET SUR GARONNE","64","","","06.52.90.38.10","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("36","Paypal_Address","80","2","BELOTTI IMMOBILIER EURL","Belotti","IMMOBILIER","28 rue principale","","","31120","PORTET SUR GARONNE","64","","05.61.72.06.49","06.24.37.11.36","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("37","Domicile","81","2","","catherine","BOUSQUET","rue des crouzettes","","","31120","portet sur garonne","64","","33652903810","33652903810","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("38","BUREAUX","82","2","PHARMACIE DE LA HALLE","Karine","AGARD","rue principale","","","31120","portet sur garonne","64","","33652903810","33652903810","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("39","Blagnac","83","2","","Cécile","BOIAGO","rue","","","31700","blagnac","64","","0561428726","066318988","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("40","Mon adresse","84","2","","nolwenn","THIESSARD","54 rue jules verne","","","31200","TOULOUSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("41","Paypal_Address","85","2","","christine","PORTE","9 rue sartre","","","31120","ROQUETTES","64","","","0649601077","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("42","dolder","86","2","","loren","DOLDER","saint papoul","","","31460","AURIAC SUR VENDINELLE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("43","Mon adresse","87","2","","Sandra","TEULIER","2 RUE BELLEVILLE","","","31200","TOULOUSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("44","Mon adresse","88","2","","Margot","BAUVAIS","10 rue Aymeric de Murel","","","31370","POUCHARRAMET","64","","0561561316","33612968101","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("45","Mon adresse","88","2","","Margot","BAUVAIS","8 rue Cécile Brunschvicg","maison 1","","31200","TOULOUSE","64","","","0612968101","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("46","Domicile","89","2","","Lydia","GUARDIA","100 Avenue François Mitterrand","LE CHEVERNY Appt 195","","81100","CASTRES","64","","0950810807","0621345328","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("47","Mon adresse","90","2","","Sophie","BLANKE","11 rue des Temporets","","","78510","TRIEL-SUR-SEINE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("48","JEAN-PIERRE Rosemonde","91","2","","Rose","JEAN-PIERRE","147 RUE EDMOND ROSTAND","ENTREE D 412","","31200","TOULOUSE","64","","0610860134","0610860134","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("49","Adresse domicile","92","2","","KARINE","DELILLE","15 AVENUE GEORGES BRASSENS","BAT L\'AUTAN APPT 223 2ème ETAGE","","31670","LABEGE","64","","","0608689112","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("50","Maison","93","2","","charlotte","ESMENJAUD","19 rue Alexis Alquié","","","34000","MONTPELLIER","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("51","Montferrier","93","2","CENTRE D\'OPHTALMOLOGIE","charlotte","ESMENJAUD","67 chemin de Fescau","","","34980","MONTFERRIER SUR LEZ","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("52","Mon adresse franck","94","2","","fanny","DELEPLANQUE","29 rue edouard vaillant","","","59155","FACHES THUMESNIL","64","","","0659376414","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("53","Mon adresse","95","2","","Elisabeth","GABAUD","59 av de Carreli","","","31490","LEGUEVIN","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("54","domicile","96","2","","odile","DUBOIS BOUDES","3 allées des soupirs","","","31400","toulouse","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("55","BUREAUX","97","2","SARL VALESID","SARL VALESID","CURVES","3 route de la clé","","","31120","portet sur garonne","64","","05.61.91.60.33","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("56","bureau","98","2","LA FERME DU VILLAGE","Sabine","CAPPAROS","5 rue du commerce","","","31120","portet sur garonne","64","","05.61.41.65.16","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("57","domicile","99","2","","elisabeth","CURVES","route de la cle","","","31120","portet sur garonne","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("58","Mon adresse","100","2","","CORINE","LANFRANCO PRADEL","2 rue de la ruette","","","22520","BINIC","64","","","0619817945","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("59","HOPITAL","100","2","HOPITAL BON SAUVEUR UNITE KER AVEL","CORINE","LANFRANCO PRADEL","1 RUE DU BON SAUVEUR","","","22140","BEGARD","64","","0296453742","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("60","DOMAINE DE BEL AIR","101","2","DOMAINE DE BEL AIR","Corinne","AMAGAT","1455 Route de Villatte","","","31600","eaunes","64","","","06.09.17.19.74","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("61","Mon adresse","102","2","","Astride","LE CORRE","Les Cages","","","14570","clecy","64","","0688326595","0688326595","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("62","boulangerie","103","2","SARL RATINHO","Mercedes","RATINHO","9 place Alfred Sauvy","","","31270","cugnaux","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("63","VT","104","2","","Clotilde","JAOUEN","1 rue Gabriel Fauré","Appt3A","","31270","VILLENEUVE TOLOSANE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("64","Papa et Maman","104","2","","Clotilde","JAOUEN","676 chemin des Gardios","Chez L.JAOUEN","","82800","NEGREPELISSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("65","BUREAUX","105","2","DIEGUEZ ET FILS","Myriam","DIEGUEZ","ZI DE LA PICHE","7 PLACE JEAN CHAUBET","","31600","SEYSSES","64","","05.34.56.49.60","06.21.41.26.51","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("66","Mon adresse","105","2","","Myriam","DIEGUEZ","17 Rue de l\'Embouchure","","","31120","PORTET SUR GARONNE","64","","05 34 56 49 60","06 21 41 26 51","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("68","hennebo","106","2","","elisabeth","HENNEBO","25 rue des sorbiers","","","31120","PORTET SUR GARONNE","64","","0562201433","0614098808","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("69","Mon adresse","107","2","","Dominique","RAMBAUD","3 lotissement le champ du pesqué","","","32600","Razengues","64","","","0631761049","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("70","Mon adresse","108","2","","dominique","LE CORRE","15 rue des Hogues","","","14230","ISIGNY SUR MER","64","","0231220301","0631483536","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("71","Crêperie","109","2","LE BIDULE","fabienne","TASSETTI CRÊPERIE LE BIDULE","Place Jules Ferry","","","31200","CAZERES","64","","0561873920","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("72","moi","110","2","","Claire","MARTINI","48 Avenue de Gascogne","","","31490","Leguevin","64","","0676054374","0676054374","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("73","Mon adresse","111","2","RESTAURANT LA VILLA 31","karine","GOETHALS","350 route de rieumes","","","31600","MURET","64","","0561563973","0617182269","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("74","Mon adresse","112","2","","VERONIQUE","GASPERI","RUE DE MANSENCAL","","","31500","TOULOUSE","64","","0677499988","0677499988","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("75","PRO","113","2","FLEUREA","Françoise","DAVID","39 rue Faubourg Bonnefoy","","","31500","TOULOUSE","64","","05 61 120 337","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("76","PRO","114","2","LES GOURMANDISES DU VOLVESTRE","AXELLE","LES GOURMANDISES DU VOLVESTRE","Place des ecoliers","","","31220","SAINT JULIEN","64","","05 61 98 23 59","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("77","bureau","115","2","LA RUCHE QUI DIT OUI","ODILE","MAILHE","208 rue saint Maur","","","75010","PARIS 10","64","","","0632157016","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("78","Mon adresse","116","2","","Aurélie","SOUM","7 rue saint-pierre","appartement 71, résidence l\'opaline","","31780","CASTELGINEST","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("79","valerie marchesin","117","2","","valérie","MARCHESIN","31 rue jacques lalanne","","","32220","lombez","64","","0960505407","0960505407","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("80","jean","118","2","","josiane","JEAN","15 rue corneille","","","31100","TOULOUSE","64","","","0674095745","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("81","Mon adresse","119","2","STICA","Genevieve","ROUJAS","5","rue des romarins","","32220","Lombez","64","","+33683389676","+33683389676","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("82","Ausy","120","2","AUSY","Claire","PELLAT","4 rue du Professeur Pierre Vellas","","","31300","TOULOUSE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("83","Mon adresse","121","2","DÉLÙ","Adèle","DELEBOIS","14 Rue jean favier","","","31500","TOULOUSE","64","","","06 26 69 02 64","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("84","Mon adresse","122","2","","BEAUMEL","MAGALI","4 PLACE CLEMENCE ISAURE","APPARTMENT N° 10","","31600","MURER","64","","","0675523369","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("85","domicile","123","2","","julienne","BOUKRAA","Ancienne voie romaine","Quartier le \"terré\"","","31430","St élix le chateau","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); -INSERT INTO `address` VALUES("86","Loze claire","124","2","","Claire","LOZE","5 chemin du pricle","","","31410","NOE","64","","","","1","2017-04-12 23:28:45","2017-04-12 23:28:45"); - - - -DROP TABLE `address_icirelais`; - -CREATE TABLE `address_icirelais` ( - `id` int(11) NOT NULL, - `title_id` int(11) NOT NULL, - `company` varchar(255) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `address1` varchar(255) NOT NULL, - `address2` varchar(255) NOT NULL, - `address3` varchar(255) NOT NULL, - `zipcode` varchar(10) NOT NULL, - `city` varchar(255) NOT NULL, - `country_id` int(11) NOT NULL, - `code` varchar(10) NOT NULL, - PRIMARY KEY (`id`), - KEY `FI_address_icirelais_customer_title_id` (`title_id`), - KEY `FI_address_country_id` (`country_id`), - CONSTRAINT `fk_address_icirelais_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`), - CONSTRAINT `fk_address_icirelais_customer_title_id` FOREIGN KEY (`title_id`) REFERENCES `customer_title` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `admin`; - -CREATE TABLE `admin` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `profile_id` int(11) DEFAULT NULL, - `firstname` varchar(100) NOT NULL, - `lastname` varchar(100) NOT NULL, - `login` varchar(100) NOT NULL, - `password` varchar(128) NOT NULL, - `locale` varchar(45) NOT NULL, - `algo` varchar(128) DEFAULT NULL, - `salt` varchar(128) DEFAULT NULL, - `remember_me_token` varchar(255) DEFAULT NULL, - `remember_me_serial` varchar(255) DEFAULT NULL, - `email` varchar(255) NOT NULL, - `password_renew_token` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `login_UNIQUE` (`login`), - UNIQUE KEY `email_UNIQUE` (`email`), - KEY `idx_admin_profile_id` (`profile_id`), - CONSTRAINT `fk_admin_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `profile` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `admin` VALUES("1","","admin","admin","admin","$2y$10$nrzcGr7w1PLq0S0oYlqW9.9E4aREayUNdxbJXZblHGox8pDg39WLS","fr_FR","PASSWORD_BCRYPT","","5933e3e71d909","58b5b1a6a4f20","boutiquefanny@free.fr","","2017-02-28 18:21:42","2017-06-04 10:41:43"); - - - -DROP TABLE `admin_log`; - -CREATE TABLE `admin_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `admin_login` varchar(255) DEFAULT NULL, - `admin_firstname` varchar(255) DEFAULT NULL, - `admin_lastname` varchar(255) DEFAULT NULL, - `resource` varchar(255) DEFAULT NULL, - `resource_id` int(11) DEFAULT NULL, - `action` varchar(255) DEFAULT NULL, - `message` text, - `request` longtext, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=198 DEFAULT CHARSET=utf8; - -INSERT INTO `admin_log` VALUES("1","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 60791\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60791\n\n","2017-02-28 18:22:24","2017-02-28 18:22:24"); -INSERT INTO `admin_log` VALUES("2","root","admin","admin","admin.configuration.attribute","1","CREATE","Attribute Petit (106ml) (ID 1) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 420\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 78.210.220.249\nRemote-Port: 61009\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61009\n\nthelia_attribute_creation%5B_token%5D=g-v21E0gYKv17RD0W1D9W8xRlMN7hKgRWmRBw_-pJPU&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=Petit+%28106ml%29&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR&thelia_attribute_creation%5Badd_to_all%5D=1","2017-02-28 18:24:13","2017-02-28 18:24:13"); -INSERT INTO `admin_log` VALUES("3","root","admin","admin","admin.configuration.attribute","1","UPDATE","Attribute Petit (106ml) (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 600\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61009\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61009\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=1&attribute_id=1&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=t-rpTk7SapcxWTp1djrQKVlCiYoNFBRe7SiLHrmrVK4&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Petit+%28106ml%29&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-02-28 18:24:23","2017-02-28 18:24:23"); -INSERT INTO `admin_log` VALUES("4","root","admin","admin","admin.configuration.attribute","2","CREATE","Attribute Grand (228ml) (ID 2) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 420\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 78.210.220.249\nRemote-Port: 61009\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61009\n\nthelia_attribute_creation%5B_token%5D=g-v21E0gYKv17RD0W1D9W8xRlMN7hKgRWmRBw_-pJPU&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=Grand+%28228ml%29&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR&thelia_attribute_creation%5Badd_to_all%5D=1","2017-02-28 18:24:36","2017-02-28 18:24:36"); -INSERT INTO `admin_log` VALUES("5","root","admin","admin","admin.configuration.attribute","2","UPDATE","Attribute Grand (228ml) (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 600\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 61009\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61009\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=2&attribute_id=2&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=t-rpTk7SapcxWTp1djrQKVlCiYoNFBRe7SiLHrmrVK4&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Grand+%28228ml%29&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-02-28 18:24:38","2017-02-28 18:24:38"); -INSERT INTO `admin_log` VALUES("6","root","admin","admin","admin.configuration.currency","48","DELETE","Currency (ID 48) deleted","POST /thelia233/web/index.php/admin/configuration/currencies/delete?_token=bbf2e352cd8a0c9b78018f53aeb03bb2 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 14\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/currencies\nRemote-Ip: 78.210.220.249\nRemote-Port: 61120\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61120\n\ncurrency_id=48","2017-02-28 18:25:47","2017-02-28 18:25:47"); -INSERT INTO `admin_log` VALUES("7","root","admin","admin","admin.category","1","CREATE","Category Confitures (ID 1) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 427\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 62706\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62706\n\nthelia_category_creation%5B_token%5D=VnpwUvYnEi1Wrdo3WiTBMETmXtOkjZQuioHQA_9iRHY&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Confitures&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-02-28 18:48:43","2017-02-28 18:48:43"); -INSERT INTO `admin_log` VALUES("8","root","admin","admin","admin.category","1","UPDATE","Category Nos confitures (ID 1) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 817\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DGB3Twv6MYSQ%3DfwtnZ9ogvlg%3DbEW2VAjq3fU%3D000275; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R3757013469; PHPSESSID=39437d1886609718fd4d0844c84236e6; mediaplanBAK=R129324588\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 63155\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63155\n\nsave_mode=stay&category_id=1¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=1&thelia_category_modification%5B_token%5D=ebpbzplBeHkKdb1U3sL3H7JT83YZukfIiKF0tRH3sI4&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+confitures&thelia_category_modification%5Bchapo%5D=De+d%C3%A9licieuses+confitures+maison&thelia_category_modification%5Bdescription%5D=De+d%C3%A9licieuses+confitures+maison+%C3%A0+base+de+fruits+frais+et+garanties+sans+conservateur.&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-02-28 18:53:03","2017-02-28 18:53:03"); -INSERT INTO `admin_log` VALUES("9","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 304\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 51539\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51539\n\n","2017-03-01 12:46:10","2017-03-01 12:46:10"); -INSERT INTO `admin_log` VALUES("10","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin\nRemote-Ip: 78.210.220.249\nRemote-Port: 51539\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51539\nX-Requested-With: XMLHttpRequest\n\n","2017-03-01 12:46:14","2017-03-01 12:46:14"); -INSERT INTO `admin_log` VALUES("11","root","admin","admin","admin.category","2","CREATE","Category Nos salés (ID 2) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 431\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nthelia_category_creation%5B_token%5D=fv6qGeE_moxtajQR5FfsIJudOxIp4YwxaFhjMOOLkpU&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Nos+sal%C3%A9s&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 12:46:30","2017-03-01 12:46:30"); -INSERT INTO `admin_log` VALUES("12","root","admin","admin","admin.category","2","UPDATE","Category Nos salés (ID 2) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 684\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nsave_mode=close&category_id=2¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=2&thelia_category_modification%5B_token%5D=xG4PXi0TxQonG80sC9M2qT73Zr-FDkZmMv0somelXEA&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+sal%C3%A9s&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 12:46:38","2017-03-01 12:46:38"); -INSERT INTO `admin_log` VALUES("13","root","admin","admin","admin.category","3","CREATE","Category Nos crèmes et gelées (ID 3) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 447\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nthelia_category_creation%5B_token%5D=fv6qGeE_moxtajQR5FfsIJudOxIp4YwxaFhjMOOLkpU&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Nos+cr%C3%A8mes+et+gel%C3%A9es&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 12:46:47","2017-03-01 12:46:47"); -INSERT INTO `admin_log` VALUES("14","root","admin","admin","admin.category","3","UPDATE","Category Nos crèmes et gelées (ID 3) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 700\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nsave_mode=close&category_id=3¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=3&thelia_category_modification%5B_token%5D=xG4PXi0TxQonG80sC9M2qT73Zr-FDkZmMv0somelXEA&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+cr%C3%A8mes+et+gel%C3%A9es&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 12:46:49","2017-03-01 12:46:49"); -INSERT INTO `admin_log` VALUES("15","root","admin","admin","admin.category","4","CREATE","Category Nos coffrets (ID 4) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 429\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nthelia_category_creation%5B_token%5D=fv6qGeE_moxtajQR5FfsIJudOxIp4YwxaFhjMOOLkpU&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Nos+coffrets&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 12:46:56","2017-03-01 12:46:56"); -INSERT INTO `admin_log` VALUES("16","root","admin","admin","admin.category","4","UPDATE","Category Nos coffrets (ID 4) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 682\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=4\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nsave_mode=close&category_id=4¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=4&thelia_category_modification%5B_token%5D=xG4PXi0TxQonG80sC9M2qT73Zr-FDkZmMv0somelXEA&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+coffrets&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 12:46:58","2017-03-01 12:46:58"); -INSERT INTO `admin_log` VALUES("17","root","admin","admin","admin.category","5","CREATE","Category Nos préparations toutes prêtes (ID 5) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 457\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nthelia_category_creation%5B_token%5D=fv6qGeE_moxtajQR5FfsIJudOxIp4YwxaFhjMOOLkpU&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Nos+pr%C3%A9parations+toutes+pr%C3%AAtes&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 12:47:12","2017-03-01 12:47:12"); -INSERT INTO `admin_log` VALUES("18","root","admin","admin","admin.category","5","UPDATE","Category Nos préparations toutes prêtes (ID 5) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 710\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DurFzYKIZzBk%3DT2MehlFdcUU%3DS2ydyD6qyiE%3DvU5JgKC6asY%3D000312; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215; mediaplanBAK=R129293007\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 51567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51567\n\nsave_mode=close&category_id=5¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=5&thelia_category_modification%5B_token%5D=xG4PXi0TxQonG80sC9M2qT73Zr-FDkZmMv0somelXEA&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+pr%C3%A9parations+toutes+pr%C3%AAtes&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 12:47:14","2017-03-01 12:47:14"); -INSERT INTO `admin_log` VALUES("19","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/categories/update?category_id=5 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3Dd1ycd3iQyiQ%3DPfurZyy%2BVIk%3DDjfAbl%2F5GDc%3Dey4cnTzleVY%3D000370; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 51492\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51492\n\n","2017-03-01 15:59:39","2017-03-01 15:59:39"); -INSERT INTO `admin_log` VALUES("20","root","admin","admin","admin.category","5","UPDATE","Category Nos préparations (ID 5) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 690\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3Dd1ycd3iQyiQ%3DPfurZyy%2BVIk%3DDjfAbl%2F5GDc%3Dey4cnTzleVY%3D000370; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 51523\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51523\n\nsave_mode=stay&category_id=5¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=5&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+pr%C3%A9parations&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:00:00","2017-03-01 16:00:00"); -INSERT INTO `admin_log` VALUES("21","root","admin","admin","admin.category","6","CREATE","Category Fruits exotiques (ID 6) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 433\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 51846\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51846\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Fruits+exotiques&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:03:45","2017-03-01 16:03:45"); -INSERT INTO `admin_log` VALUES("22","root","admin","admin","admin.category","6","UPDATE","Category Fruits exotiques (ID 6) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 707\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=6\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=6¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=6&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+exotiques&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=0&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:05:07","2017-03-01 16:05:07"); -INSERT INTO `admin_log` VALUES("23","root","admin","admin","admin.configuration.template","1","CREATE","Template Pot (ID 1) created","POST /thelia233/web/index.php/admin/configuration/templates/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 355\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nthelia_template_creation%5B_token%5D=hOYhpwGLGdjzUP5P5NbwozsIclTZ0vM1-s1Filn9j6w&thelia_template_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates%2Fupdate%3Ftemplate_id%3D_ID_&thelia_template_creation%5Bname%5D=Pot&edit_language_id=1&thelia_template_creation%5Blocale%5D=fr_FR","2017-03-01 16:05:24","2017-03-01 16:05:24"); -INSERT INTO `admin_log` VALUES("24","root","admin","admin","admin.configuration.template","1","UPDATE","Template Pot (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 391\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\ntemplate_id=1&save_mode=close&thelia_template_modification%5Bid%5D=1&thelia_template_modification%5B_token%5D=-softPuRqV-NVAPUbrCASir4M76t6uCnUk1mPloTM0A&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pot","2017-03-01 16:05:48","2017-03-01 16:05:48"); -INSERT INTO `admin_log` VALUES("25","root","admin","admin","admin.category","1","UPDATE","Category Nos confitures (ID 1) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 818\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=1¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=1&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+confitures&thelia_category_modification%5Bchapo%5D=De+d%C3%A9licieuses+confitures+maison&thelia_category_modification%5Bdescription%5D=De+d%C3%A9licieuses+confitures+maison+%C3%A0+base+de+fruits+frais+et+garanties+sans+conservateur.&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:06:11","2017-03-01 16:06:11"); -INSERT INTO `admin_log` VALUES("26","root","admin","admin","admin.category","2","UPDATE","Category Nos salés (ID 2) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 684\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=2¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=2&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+sal%C3%A9s&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:06:32","2017-03-01 16:06:32"); -INSERT INTO `admin_log` VALUES("27","root","admin","admin","admin.category","3","UPDATE","Category Nos crèmes et gelées (ID 3) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 700\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=3¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=3&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+cr%C3%A8mes+et+gel%C3%A9es&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:06:39","2017-03-01 16:06:39"); -INSERT INTO `admin_log` VALUES("28","root","admin","admin","admin.category","5","UPDATE","Category Nos préparations (ID 5) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 691\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=5¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=5&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+pr%C3%A9parations&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:06:45","2017-03-01 16:06:45"); -INSERT INTO `admin_log` VALUES("29","root","admin","admin","admin.configuration.template","2","CREATE","Template Panière (ID 2) created","POST /thelia233/web/index.php/admin/configuration/templates/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 364\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nthelia_template_creation%5B_token%5D=hOYhpwGLGdjzUP5P5NbwozsIclTZ0vM1-s1Filn9j6w&thelia_template_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates%2Fupdate%3Ftemplate_id%3D_ID_&thelia_template_creation%5Bname%5D=Pani%C3%A8re&edit_language_id=1&thelia_template_creation%5Blocale%5D=fr_FR","2017-03-01 16:07:04","2017-03-01 16:07:04"); -INSERT INTO `admin_log` VALUES("30","root","admin","admin","admin.configuration.template","2","UPDATE","Template Panière (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 399\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\ntemplate_id=2&save_mode=stay&thelia_template_modification%5Bid%5D=2&thelia_template_modification%5B_token%5D=-softPuRqV-NVAPUbrCASir4M76t6uCnUk1mPloTM0A&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pani%C3%A8re","2017-03-01 16:07:20","2017-03-01 16:07:20"); -INSERT INTO `admin_log` VALUES("31","root","admin","admin","admin.category","4","UPDATE","Category Nos coffrets (ID 4) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 682\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=4\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=4¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=4&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=Nos+coffrets&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=2&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:07:33","2017-03-01 16:07:33"); -INSERT INTO `admin_log` VALUES("32","root","admin","admin","admin.category","6","UPDATE","Category Fruits exotiques (ID 6) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 707\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=6\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=6¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=6&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+exotiques&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:07:42","2017-03-01 16:07:42"); -INSERT INTO `admin_log` VALUES("33","root","admin","admin","admin.category","7","CREATE","Category Fruits rouges (ID 7) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 430\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Fruits+rouges&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:07:52","2017-03-01 16:07:52"); -INSERT INTO `admin_log` VALUES("34","root","admin","admin","admin.category","7","UPDATE","Category Fruits rouges (ID 7) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 704\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=7\nRemote-Ip: 78.210.220.249\nRemote-Port: 51998\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51998\n\nsave_mode=close&category_id=7¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=7&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+rouges&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:07:57","2017-03-01 16:07:57"); -INSERT INTO `admin_log` VALUES("35","root","admin","admin","admin.category","8","CREATE","Category Agrumes (ID 8) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 424\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Agrumes&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:08:16","2017-03-01 16:08:16"); -INSERT INTO `admin_log` VALUES("36","root","admin","admin","admin.category","8","UPDATE","Category Agrumes (ID 8) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 698\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=8\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nsave_mode=close&category_id=8¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=8&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Agrumes&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:08:19","2017-03-01 16:08:19"); -INSERT INTO `admin_log` VALUES("37","root","admin","admin","admin.category","9","CREATE","Category Fruits à noyaux (ID 9) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 437\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Fruits+%C3%A0+noyaux&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:08:27","2017-03-01 16:08:27"); -INSERT INTO `admin_log` VALUES("38","root","admin","admin","admin.category","9","UPDATE","Category Fruits à noyaux (ID 9) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 711\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=9\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nsave_mode=close&category_id=9¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=9&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+%C3%A0+noyaux&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:08:31","2017-03-01 16:08:31"); -INSERT INTO `admin_log` VALUES("39","root","admin","admin","admin.category","10","CREATE","Category Fruits à pépins (ID 10) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 442\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nthelia_category_creation%5B_token%5D=s5wniaXxUTcno5v4CjS2OYErNljfu7iM9qq1zMplV0w&thelia_category_creation%5Bparent%5D=1&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=Fruits+%C3%A0+p%C3%A9pins&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-03-01 16:08:40","2017-03-01 16:08:40"); -INSERT INTO `admin_log` VALUES("40","root","admin","admin","admin.category","10","UPDATE","Category Fruits à pépins (ID 10) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 718\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplan=R2045159618; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=10\nRemote-Ip: 78.210.220.249\nRemote-Port: 52269\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52269\n\nsave_mode=close&category_id=10¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=10&thelia_category_modification%5B_token%5D=O1Tbyq7heZGZCXFZDNGcypMHPGDe4KWONqIQzX2HkvM&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D1&thelia_category_modification%5Btitle%5D=Fruits+%C3%A0+p%C3%A9pins&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=1&thelia_category_modification%5Bdefault_template_id%5D=1&thelia_category_modification%5Bvisible%5D=1","2017-03-01 16:08:45","2017-03-01 16:08:45"); -INSERT INTO `admin_log` VALUES("41","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/catalog HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2045159618; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D; PHPSESSID=f4a705afec74f6786ef5d50adb4ca215\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 59293\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59293\n\n","2017-03-01 17:52:57","2017-03-01 17:52:57"); -INSERT INTO `admin_log` VALUES("42","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/folders HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2045159618; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D%2FpjLfviDHIo%3DmAf18i56Eiw%3DiTSlvwhqdTQ%3DvU5JgKC6asY%3D000112; mediaplanBAK=R129298452; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 64348\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 64348\n\n","2017-03-01 18:55:20","2017-03-01 18:55:20"); -INSERT INTO `admin_log` VALUES("43","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; mediaplan=R3721346708; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders\nRemote-Ip: 78.210.220.249\nRemote-Port: 50722\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50722\n\n","2017-03-02 11:12:22","2017-03-02 11:12:22"); -INSERT INTO `admin_log` VALUES("44","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplan=R3721346708; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 50722\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50722\nX-Requested-With: XMLHttpRequest\n\n","2017-03-02 11:12:28","2017-03-02 11:12:28"); -INSERT INTO `admin_log` VALUES("45","root","admin","admin","admin.configuration.tax","2","DELETE","Taxrule (ID 2) deleted","POST /thelia233/web/index.php/admin/configuration/taxes_rules/delete?_token=4d45097c2ccdd588a50b085b3eef286b HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 13\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; mediaplan=R3721346708; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/taxes_rules\nRemote-Ip: 78.210.220.249\nRemote-Port: 51286\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51286\n\ntax_rule_id=2","2017-03-02 11:20:21","2017-03-02 11:20:21"); -INSERT INTO `admin_log` VALUES("46","root","admin","admin","admin.configuration.tax","2","DELETE","Tax (ID 2) deleted","POST /thelia233/web/index.php/admin/configuration/taxes/delete?_token=e9df4ed411a1eecd3a895fff62bbe5a5 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 8\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3Dd1ycd3iQyiQ%3DT2MehlFdcUU%3DsdvwGKMOw5s%3DvU5JgKC6asY%3D000408; mediaplan=R3721346708; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/taxes_rules\nRemote-Ip: 78.210.220.249\nRemote-Port: 51286\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51286\n\ntax_id=2","2017-03-02 11:20:27","2017-03-02 11:20:27"); -INSERT INTO `admin_log` VALUES("47","root","admin","admin","admin.configuration.store","","UPDATE","Store configuration changed","POST /thelia233/web/index.php/admin/configuration/store/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 1028\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3DlTM2NJVG9ow%3DcIrKWtvM2sM%3Dr3XxjOi2ZgU%3Dcd3J8jnX1gk%3DYt7C%2Boqk9PY%3DNtMIky0p4Vg%3D%2BcgRCTLwuxo%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DNtMIky0p4Vg%3D%2BcgRCTLwuxo%3DDQdLSTCUv9k%3DLSIAjfEcPrc%3D%2FHIzvL7HVt8%3DQ91ztp9hYj4%3Du7Aq7HcytBM%3DpnKkbBx1ROY%3DWj%2Bji8PYoIQ%3DHGyelKUFG9I%3DX32DtY1tVXc%3Ddyheh4rTMKI%3DjT17h0RU5zg%3DqtMgQAV2AcE%3DuKwYIlOLFGs%3DXX7xr1bfqiM%3DXN1LTbZkRBE%3De3hVr%2BtoPqY%3DipTQm%2Bf3MAs%3D2RsWrdnyErQ%3DYt7C%2Boqk9PY%3DBB%2Bhh0nO8%2B8%3D1K1H0Gbk%2F4s%3DtIxO%2F66U18U%3DjPFIu01fUto%3DYfkPKwhQWOg%3DSoyhH%2BN0UuE%3D%2BeQD%2FkwlLRI%3D5ckdqLdVDhQ%3D%2BVhcLfbZaqc%3Dy81dNl2%2BtFI%3Dv%2BYKg2iYegY%3DT8Y84TWAg9I%3DXGywjo8kfik%3DOFiBEjpkAOs%3DRJJm9JYd%2Fag%3D4d0rknTlKI0%3DDQdLSTCUv9k%3Dqch4a6JwZxw%3DMjXOzz41w2o%3DA0xBkJ9E214%3D000781; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; mediaplan=R3721346708; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/store\nRemote-Ip: 78.210.220.249\nRemote-Port: 53587\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53587\n\nthelia_configuration_store%5B_token%5D=X4bY-lc4sWW-gB3HK9hsJOp5biMOPskkULUf3ODwDaM&thelia_configuration_store%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration&save_mode=close&thelia_configuration_store%5Bstore_name%5D=La+boutique+de+Fanny&thelia_configuration_store%5Bstore_description%5D=Confitures+artisanales%2C+pr%C3%A9parations+en+bocaux&thelia_configuration_store%5Bstore_business_id%5D=SIRET+%3A+79746708100023&thelia_configuration_store%5Bstore_email%5D=boutiquefanny%40free.fr&thelia_configuration_store%5Bstore_notification_emails%5D=boutiquefanny%40free.fr&thelia_configuration_store%5Bstore_address1%5D=26+chemin+de+Marragon&thelia_configuration_store%5Bstore_address2%5D=&thelia_configuration_store%5Bstore_address3%5D=&thelia_configuration_store%5Bstore_zipcode%5D=31600&thelia_configuration_store%5Bstore_city%5D=MURET&thelia_configuration_store%5Bstore_country%5D=64&thelia_configuration_store%5Bstore_phone%5D=&thelia_configuration_store%5Bstore_fax%5D=","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `admin_log` VALUES("48","root","admin","admin","admin.configuration","2","UPDATE","Variable active-front-template (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/variables/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 866\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DgXeQR%2FKeEyw%3Dqy8jvD2%2Bsuk%3DCIeRg8gGpZk%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DX%2F2KF3%2B6H%2BA%3DbUUs56qhFwM%3DXN1LTbZkRBE%3DwKGtCCIQyoQ%3Dm2LudMiQyjc%3Dn%2BinmgVqckc%3DvCD76zfVvvw%3DHBsv6lNTTss%3DP1w28eDAhwI%3DlOxniy3v9n0%3DjqLP570LrPw%3DOG1DgnKTFng%3D7QfDrLbCwUk%3DXN1LTbZkRBE%3DlqFg1mvtdAA%3DDC0Mloc3jJs%3De3pbEKMRMGg%3DFaASPN8OU8A%3DOEVP7YjFlnI%3DXN1LTbZkRBE%3DlbTjYhQrjrY%3D93KS9cmJ5Hk%3DlTM2NJVG9ow%3DcIrKWtvM2sM%3Dr3XxjOi2ZgU%3Dcd3J8jnX1gk%3DYt7C%2Boqk9PY%3DNtMIky0p4Vg%3D%2BcgRCTLwuxo%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DNtMIky0p4Vg%3D%2BcgRCTLwuxo%3DDQdLSTCUv9k%3DLSIAjfEcPrc%3D%2FHIzvL7HVt8%3DQ91ztp9hYj4%3Du7Aq7HcytBM%3DpnKkbBx1ROY%3DWj%2Bji8PYoIQ%3DHGyelKUFG9I%3DX32DtY1tVXc%3Ddyheh4rTMKI%3DjT17h0RU5zg%3DqtMgQAV2AcE%3DuKwYIlOLFGs%3DXX7xr1bfqiM%3DXN1LTbZkRBE%3De3hVr%2BtoPqY%3DipTQm%2Bf3MAs%3D2RsWrdnyErQ%3DYt7C%2Boqk9PY%3DBB%2Bhh0nO8%2B8%3D1K1H0Gbk%2F4s%3DtIxO%2F66U18U%3DjPFIu01fUto%3DYfkPKwhQWOg%3DSoyhH%2BN0UuE%3D%2BeQD%2FkwlLRI%3D5ckdqLdVDhQ%3D%2BVhcLfbZaqc%3Dy81dNl2%2BtFI%3Dv%2BYKg2iYegY%3DT8Y84TWAg9I%3DXGywjo8kfik%3DOFiBEjpkAOs%3DRJJm9JYd%2Fag%3D4d0rknTlKI0%3DDQdLSTCUv9k%3Dqch4a6JwZxw%3DMjXOzz41w2o%3DA0xBkJ9E214%3D000781; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DgXeQR%2FKeEyw%3D6GvuOumQD90%3DB%2B51fwzUX%2Bk%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D9KtsAULAom0%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DWwhwvvzM4jw%3DPfurZyy%2BVIk%3Dwx%2BwYQ2ARxk%3D6P5gOmLXpiY%3D000114; mediaplan=R3721346708; PHPSESSID=dd9564ac5ad6140e9f80132328de9066; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/variables/update?variable_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 53646\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53646\n\nvariable_id=2&save_mode=close&thelia_config_modification%5Bid%5D=2&thelia_config_modification%5Bhidden%5D=0&thelia_config_modification%5Bsecured%5D=0&thelia_config_modification%5Blocale%5D=fr_FR&thelia_config_modification%5B_token%5D=Wiaz7c4phCsqMwCc1juMp1o-MIBhDBqCnNFnC1-MMBk&thelia_config_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fvariables&thelia_config_modification%5Bid%5D=2&thelia_config_modification%5Bhidden%5D=0&thelia_config_modification%5Blocale%5D=fr_FR&thelia_config_modification%5Bname%5D=active-front-template&thelia_config_modification%5Bvalue%5D=BoutiqueFanny&thelia_config_modification%5Btitle%5D=Nom+du+mod%C3%A8le+de+front-office+actif&thelia_config_modification%5Bchapo%5D=&thelia_config_modification%5Bdescription%5D=&thelia_config_modification%5Bpostscriptum%5D=","2017-03-02 11:50:36","2017-03-02 11:50:36"); -INSERT INTO `admin_log` VALUES("49","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: mediaplan=R3721346708; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/variables\nRemote-Ip: 78.210.220.249\nRemote-Port: 55886\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55886\n\n","2017-03-02 12:15:30","2017-03-02 12:15:30"); -INSERT INTO `admin_log` VALUES("50","root","admin","admin","admin.configuration.language","4","UPDATE","Lang Italiano (ID 4) modified","GET /thelia233/web/index.php/admin/configuration/languages/toggleVisible/4?_token=f552ac66508016b454b7956959c80f00 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3Dj0PSVoOGJqs%3Dhe09rOSpGJ0%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DLKFm1XBtOLQ%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DtN6tiSKabXI%3DJku0VYSH8QM%3D8Yuk3ekqF6A%3D5tMXqbIUe3o%3D000113; mediaplan=R3721346708; PHPSESSID=dc01fe01d46eb2974593ff590f7ef12e; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/languages\nRemote-Ip: 78.210.220.249\nRemote-Port: 57160\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57160\n\n","2017-03-02 12:31:35","2017-03-02 12:31:35"); -INSERT INTO `admin_log` VALUES("51","root","admin","admin","admin.configuration.language","3","UPDATE","Lang Castellano (ID 3) modified","GET /thelia233/web/index.php/admin/configuration/languages/toggleVisible/3?_token=17a91cd86c91bcb679ec502652920b25 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3Dj0PSVoOGJqs%3Dhe09rOSpGJ0%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DLKFm1XBtOLQ%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DtN6tiSKabXI%3DJku0VYSH8QM%3D8Yuk3ekqF6A%3D5tMXqbIUe3o%3D000113; mediaplan=R3721346708; PHPSESSID=dc01fe01d46eb2974593ff590f7ef12e; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/languages\nRemote-Ip: 78.210.220.249\nRemote-Port: 57160\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57160\n\n","2017-03-02 12:31:43","2017-03-02 12:31:43"); -INSERT INTO `admin_log` VALUES("52","root","admin","admin","admin.configuration.language","2","UPDATE","Lang English (ID 2) modified","GET /thelia233/web/index.php/admin/configuration/languages/toggleVisible/2?_token=3f023414389b0f880379f406c3aa998b HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3Dj0PSVoOGJqs%3Dhe09rOSpGJ0%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DLKFm1XBtOLQ%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DtN6tiSKabXI%3DJku0VYSH8QM%3D8Yuk3ekqF6A%3D5tMXqbIUe3o%3D000113; mediaplan=R3721346708; PHPSESSID=dc01fe01d46eb2974593ff590f7ef12e; mediaplanBAK=R129324588; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/languages\nRemote-Ip: 78.210.220.249\nRemote-Port: 57160\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57160\n\n","2017-03-02 12:31:45","2017-03-02 12:31:45"); -INSERT INTO `admin_log` VALUES("53","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCache-Control: max-age=0\nConnection: close\nCookie: mediaplan=R3721346708; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/variables\nRemote-Ip: 78.210.220.249\nRemote-Port: 59147\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59147\n\n","2017-03-02 13:01:11","2017-03-02 13:01:11"); -INSERT INTO `admin_log` VALUES("54","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCache-Control: max-age=0\nConnection: close\nCookie: mediaplan=R3721346708; armcn=cm9vdAA1OGI2YjQ4MjVkMTRmADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/variables\nRemote-Ip: 78.210.220.249\nRemote-Port: 60377\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60377\n\n","2017-03-02 13:16:44","2017-03-02 13:16:44"); -INSERT INTO `admin_log` VALUES("55","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 304\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 62337\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62337\n\n","2017-03-02 13:43:44","2017-03-02 13:43:44"); -INSERT INTO `admin_log` VALUES("56","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin\nRemote-Ip: 78.210.220.249\nRemote-Port: 62337\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62337\nX-Requested-With: XMLHttpRequest\n\n","2017-03-02 13:43:48","2017-03-02 13:43:48"); -INSERT INTO `admin_log` VALUES("57","root","admin","admin","admin.configuration.attribute","3","CREATE","Attribute 385ml (ID 3) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 408\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nthelia_attribute_creation%5B_token%5D=vS887BNup7KA8qMM7YTJkgxjUPDObUI0oCKBvFB6V34&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=385ml&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR&thelia_attribute_creation%5Badd_to_all%5D=1","2017-03-02 14:01:20","2017-03-02 14:01:20"); -INSERT INTO `admin_log` VALUES("58","root","admin","admin","admin.configuration.attribute","3","UPDATE","Attribute 385ml (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 588\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=3&attribute_id=3&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=lwfckv_7_jX2oHeI4FJCNhcKhogTw4rVaucGukRpDOQ&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=385ml&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-03-02 14:01:28","2017-03-02 14:01:28"); -INSERT INTO `admin_log` VALUES("59","root","admin","admin","admin.configuration.attribute","4","CREATE","Attribute 750ml (ID 4) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 364\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nthelia_attribute_creation%5B_token%5D=vS887BNup7KA8qMM7YTJkgxjUPDObUI0oCKBvFB6V34&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=750ml&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR","2017-03-02 14:01:38","2017-03-02 14:01:38"); -INSERT INTO `admin_log` VALUES("60","root","admin","admin","admin.configuration.attribute","4","UPDATE","Attribute 750ml (ID 4) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 588\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=4\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=4&attribute_id=4&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=lwfckv_7_jX2oHeI4FJCNhcKhogTw4rVaucGukRpDOQ&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=750ml&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-03-02 14:01:41","2017-03-02 14:01:41"); -INSERT INTO `admin_log` VALUES("61","root","admin","admin","admin.configuration.attribute","2","UPDATE","Attribute 228ml (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 588\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=2&attribute_id=2&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=lwfckv_7_jX2oHeI4FJCNhcKhogTw4rVaucGukRpDOQ&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=228ml&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-03-02 14:01:52","2017-03-02 14:01:52"); -INSERT INTO `admin_log` VALUES("62","root","admin","admin","admin.configuration.attribute","1","UPDATE","Attribute 106ml (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 588\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=1&attribute_id=1&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=lwfckv_7_jX2oHeI4FJCNhcKhogTw4rVaucGukRpDOQ&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=106ml&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-03-02 14:02:02","2017-03-02 14:02:02"); -INSERT INTO `admin_log` VALUES("63","root","admin","admin","admin.configuration.template","2","UPDATE","Template Panière (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 400\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=2\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\ntemplate_id=2&save_mode=close&thelia_template_modification%5Bid%5D=2&thelia_template_modification%5B_token%5D=_IF6Gr_sFV1V-aL4YuZft4E3nBgRDhntl3QyOKeHcTs&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pani%C3%A8re","2017-03-02 14:02:19","2017-03-02 14:02:19"); -INSERT INTO `admin_log` VALUES("64","root","admin","admin","admin.configuration.template","1","UPDATE","Template Pot (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 391\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3D3b9Z6Lewyhg%3DgtoH2RgkZIc%3D%2FYISt1RFId4%3DvU5JgKC6asY%3D000288; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da; mediaplanBAK=R129289740\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 63752\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63752\n\ntemplate_id=1&save_mode=close&thelia_template_modification%5Bid%5D=1&thelia_template_modification%5B_token%5D=_IF6Gr_sFV1V-aL4YuZft4E3nBgRDhntl3QyOKeHcTs&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pot","2017-03-02 14:02:38","2017-03-02 14:02:38"); -INSERT INTO `admin_log` VALUES("65","root","admin","admin","admin.configuration.area","15","CREATE","Area Autour de Muret (ID 15) created","POST /thelia233/web/index.php/admin/configuration/shipping_configuration/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 292\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/shipping_configuration\nRemote-Ip: 78.210.220.249\nRemote-Port: 49900\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49900\n\nthelia_area_creation%5B_token%5D=0AJdBrU2mN3KXfZAEW36_8cqQ7idM_lqP8kglZPIjrg&thelia_area_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fshipping_configuration%2Fupdate%2F_ID_&thelia_area_creation%5Bname%5D=Autour+de+Muret","2017-03-02 15:51:29","2017-03-02 15:51:29"); -INSERT INTO `admin_log` VALUES("66","root","admin","admin","admin.configuration.area","15","UPDATE","Area Autour de Muret (ID 15) modified, new country added","POST /thelia233/web/index.php/admin/configuration/shipping_configuration/country/add HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 335\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/shipping_configuration/country/add\nRemote-Ip: 78.210.220.249\nRemote-Port: 49900\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49900\n\nthelia_area_country%5B_token%5D=1ASkKFOkWoxVxcpXXY9QNp3BQNch2yyxJVWdNQX7fOU&area_id=15&thelia_area_country%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fshipping_configuration%2Fupdate%2F15&thelia_area_country%5Barea_id%5D=15&thelia_area_country%5Bcountry_id%5D%5B%5D=64-0","2017-03-02 15:51:56","2017-03-02 15:51:56"); -INSERT INTO `admin_log` VALUES("67","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 49936\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49936\nX-Requested-With: XMLHttpRequest\n\n","2017-03-02 15:54:49","2017-03-02 15:54:49"); -INSERT INTO `admin_log` VALUES("68","root","admin","admin","admin.customer","1","CREATE","Customer CUS000000000001(BOND James) (ID 1) created","POST /thelia233/web/index.php/admin/customer/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 875\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customers\nRemote-Ip: 78.210.220.249\nRemote-Port: 50068\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50068\n\nthelia_customer_create%5B_token%5D=TuTOAxJ9Tq2Snb-YSDKK8BU4kkrkfxwgreTvjwUUweI&thelia_customer_create%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcustomer%2Fupdate%3Fcustomer_id%3D_ID_&thelia_customer_create%5Bpassword%5D=dummmy-password&thelia_customer_create%5Bpassword_confirm%5D=dummmy-password&thelia_customer_create%5Bcompany%5D=&thelia_customer_create%5Btitle%5D=1&thelia_customer_create%5Bfirstname%5D=James&thelia_customer_create%5Blastname%5D=BOND&thelia_customer_create%5Baddress1%5D=26+chemin+de+Marragon&thelia_customer_create%5Baddress2%5D=&thelia_customer_create%5Baddress3%5D=&thelia_customer_create%5Bzipcode%5D=31600&thelia_customer_create%5Bcity%5D=Muret&thelia_customer_create%5Bcountry%5D=64&thelia_customer_create%5Bemail%5D=llecorre%40free.fr&thelia_customer_create%5Bemail_confirm%5D=llecorre%40free.fr","2017-03-02 16:04:44","2017-03-02 16:04:44"); -INSERT INTO `admin_log` VALUES("69","root","admin","admin","admin.customer","1","UPDATE","Customer CUS000000000001(BOND James) (ID 1) modified","POST /thelia233/web/index.php/admin/customer/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 869\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DgUMryANRAlI%3DPfurZyy%2BVIk%3D%2F7d8ngdIc6k%3DqMBixxSIXHU%3D000114; mediaplan=R3721346708; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D; PHPSESSID=eb322fca7da10620d02dac613e7276da\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customer/update?customer_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 50080\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50080\n\nsave_mode=close&thelia_customer_update%5B_token%5D=GXbk_mItNuN4DDe9PmTaIg7MipLoYyVmkWctfYeisjs&page=1&customer_id=1&thelia_customer_update%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcustomers%3Fpage%3D1&thelia_customer_update%5Btitle%5D=1&thelia_customer_update%5Bfirstname%5D=James&thelia_customer_update%5Blastname%5D=BOND&thelia_customer_update%5Bemail%5D=llecorre%40free.fr&thelia_customer_update%5Bdiscount%5D=&thelia_customer_update%5Bpassword%5D=&thelia_customer_update%5Bcompany%5D=&thelia_customer_update%5Baddress1%5D=26+chemin+de+Marragon&thelia_customer_update%5Baddress2%5D=&thelia_customer_update%5Baddress3%5D=&thelia_customer_update%5Bzipcode%5D=31600&thelia_customer_update%5Bcity%5D=Muret&thelia_customer_update%5Bcountry%5D=64&thelia_customer_update%5Bphone%5D=&thelia_customer_update%5Bcellphone%5D=","2017-03-02 16:05:32","2017-03-02 16:05:32"); -INSERT INTO `admin_log` VALUES("70","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D7bN3iFscEew%3DPfurZyy%2BVIk%3D6wnOQuV7VEc%3DvhLbdBb3GAY%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; mediaplan=R3058745172; mediaplanBAK=R129295185; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 56639\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56639\n\n","2017-03-08 21:58:39","2017-03-08 21:58:39"); -INSERT INTO `admin_log` VALUES("71","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R1753932722; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3D7bN3iFscEew%3DPfurZyy%2BVIk%3D6wnOQuV7VEc%3DvhLbdBb3GAY%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3Djf%2Fb12lflzE%3DN%2BIiB6d%2F0k8%3DtaqUVYSmt3o%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3DsnK275Hj1IY%3DDC0Mloc3jJs%3DMT7UiZZ88mw%3Dy81dNl2%2BtFI%3DcCf8K5HviU8%3DTyYOQzXdWqc%3DrtWZcVlAUGU%3DMTjWVVmu%2FQw%3DEFvtypp1EDI%3DXN1LTbZkRBE%3D18EDLdm6Jao%3Df0QNfqI4lQQ%3D1b%2B8gLkot2Q%3DsyTxVCAkAcw%3DpnKkbBx1ROY%3DLwAjXsDCNn4%3DmhikDgd4RpE%3D1t8vAQTodPg%3D7NglMgF5Ijs%3DYJvo0iOKUTc%3Dr3XxjOi2ZgU%3DtNnVxKBtbTc%3DNAPBuudzGog%3DKBkEIAFm8wM%3D69mROvY71Ag%3DXN1LTbZkRBE%3DnIn6OkAfNDg%3DzOzNyOX6hHA%3DZmYLZse9KlA%3DXKwPfYofGJg%3D000441; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 56605\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56605\n\n","2017-03-13 21:57:41","2017-03-13 21:57:41"); -INSERT INTO `admin_log` VALUES("72","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757125636; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 65339\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 65339\n\n","2017-03-26 10:45:15","2017-03-26 10:45:15"); -INSERT INTO `admin_log` VALUES("73","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757125636; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 63044\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63044\n\n","2017-03-26 14:18:45","2017-03-26 14:18:45"); -INSERT INTO `admin_log` VALUES("74","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757125636; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 63051\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63051\n\n","2017-03-26 14:18:49","2017-03-26 14:18:49"); -INSERT INTO `admin_log` VALUES("75","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; mediaplan=R3757125636; PHPSESSID=d2746320c6cf2018a4f431490bead710; mediaplanBAK=R129297363; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 63051\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 63051\nX-Requested-With: XMLHttpRequest\n\n","2017-03-26 14:18:55","2017-03-26 14:18:55"); -INSERT INTO `admin_log` VALUES("76","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3058670031; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3Djntf9Ocj3%2BM%3DcBEkTHmhQ5Y%3D%2FR56Nu5VQJY%3D5tMXqbIUe3o%3D000113; armcn=cm9vdAA1OGI4MTM4MGQ5YjliADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/modules\nRemote-Ip: 78.210.220.249\nRemote-Port: 50136\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50136\n\n","2017-03-27 07:39:05","2017-03-27 07:39:05"); -INSERT INTO `admin_log` VALUES("77","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=8fdd615d7203948b66869010bf9ba8fb\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 55362\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55362\n\n","2017-04-11 16:47:53","2017-04-11 16:47:53"); -INSERT INTO `admin_log` VALUES("78","root","admin","admin","admin.configuration.administrator","1","UPDATE","Administrator root (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/administrators/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 644\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=8fdd615d7203948b66869010bf9ba8fb\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/administrators\nRemote-Ip: 78.210.220.249\nRemote-Port: 55576\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55576\n\nthelia_admin_administrator_modification%5Bid%5D=1&thelia_admin_administrator_modification%5B_token%5D=sFtNiCagPZr4SYL7zM7LlZZyIgn2tNAmFjQ-obqNPGg&thelia_admin_administrator_modification%5Blogin%5D=root&thelia_admin_administrator_modification%5Bfirstname%5D=admin&thelia_admin_administrator_modification%5Bemail%5D=boutiquefanny%40free.fr&thelia_admin_administrator_modification%5Blastname%5D=admin&thelia_admin_administrator_modification%5Bpassword%5D=MaCleo02&thelia_admin_administrator_modification%5Bpassword_confirm%5D=MaCleo02&thelia_admin_administrator_modification%5Blocale%5D=fr_FR&thelia_admin_administrator_modification%5Bprofile%5D=0","2017-04-11 16:50:36","2017-04-11 16:50:36"); -INSERT INTO `admin_log` VALUES("79","root","admin","admin","admin.customer","1","UPDATE","Customer CUS000000000001(BOND James) (ID 1) modified","POST /thelia233/web/index.php/admin/customer/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 872\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=8fdd615d7203948b66869010bf9ba8fb\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customer/update?customer_id=1&page=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 55703\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55703\n\nsave_mode=close&thelia_customer_update%5B_token%5D=GangQmSAPOXmLPYWjLStewLduum5Gl5e-W3j91hM1Gc&page=1&customer_id=1&thelia_customer_update%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcustomers%3Fpage%3D1&thelia_customer_update%5Btitle%5D=1&thelia_customer_update%5Bfirstname%5D=James&thelia_customer_update%5Blastname%5D=BOND&thelia_customer_update%5Bemail%5D=llecorre%40free.fr&thelia_customer_update%5Bdiscount%5D=&thelia_customer_update%5Bpassword%5D=&thelia_customer_update%5Bcompany%5D=MI6&thelia_customer_update%5Baddress1%5D=26+chemin+de+Marragon&thelia_customer_update%5Baddress2%5D=&thelia_customer_update%5Baddress3%5D=&thelia_customer_update%5Bzipcode%5D=31600&thelia_customer_update%5Bcity%5D=Muret&thelia_customer_update%5Bcountry%5D=64&thelia_customer_update%5Bphone%5D=&thelia_customer_update%5Bcellphone%5D=","2017-04-11 16:52:25","2017-04-11 16:52:25"); -INSERT INTO `admin_log` VALUES("80","","","","admin","","LOGIN","Authentication failure for username \'root\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=19f24a4d6b24a0baead8f6bb67ab6230; mediaplanBAK=R129296274\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 60301\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60301\n\nthelia_admin_login%5B_token%5D=graqooy154gmsS3XTVMRvUWTFWW609FZOMTi470aV4I&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=root&thelia_admin_login%5Bpassword%5D=macleo02","2017-04-11 18:04:36","2017-04-11 18:04:36"); -INSERT INTO `admin_log` VALUES("81","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 304\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; PHPSESSID=19f24a4d6b24a0baead8f6bb67ab6230; mediaplanBAK=R129296274\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 60301\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60301\n\n","2017-04-11 18:04:47","2017-04-11 18:04:47"); -INSERT INTO `admin_log` VALUES("82","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3058674387; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D; PHPSESSID=19f24a4d6b24a0baead8f6bb67ab6230; mediaplanBAK=R129296274\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin\nRemote-Ip: 78.210.220.249\nRemote-Port: 60301\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60301\nX-Requested-With: XMLHttpRequest\n\n","2017-04-11 18:04:49","2017-04-11 18:04:49"); -INSERT INTO `admin_log` VALUES("83","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2044949441; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 60101\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60101\n\n","2017-04-12 23:29:24","2017-04-12 23:29:24"); -INSERT INTO `admin_log` VALUES("84","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R2044949441; PHPSESSID=487b7e4ba634d8ea9b6601e8e9fd71aa; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 60101\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60101\nX-Requested-With: XMLHttpRequest\n\n","2017-04-12 23:29:29","2017-04-12 23:29:29"); -INSERT INTO `admin_log` VALUES("85","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757051584; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 57181\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57181\n\n","2017-04-14 15:12:41","2017-04-14 15:12:41"); -INSERT INTO `admin_log` VALUES("86","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757051584; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 58409\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58409\n\n","2017-04-14 15:30:51","2017-04-14 15:30:51"); -INSERT INTO `admin_log` VALUES("87","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; mediaplan=R3757051584; PHPSESSID=9ed8214728e2e147328d9aef3374c97f; mediaplanBAK=R129289740; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 58438\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58438\nX-Requested-With: XMLHttpRequest\n\n","2017-04-14 15:31:11","2017-04-14 15:31:11"); -INSERT INTO `admin_log` VALUES("88","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/customers HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3757051584; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DFZr53Ss5IoY%3DXQ5M6J63%2FBs%3DcBEkTHmhQ5Y%3D4QWSd9KMZus%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DAdxOrQ2sPYA%3Dd4bCz1%2BWKG0%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3D57%2BMmzfPM78%3DPm7yUR8Jbms%3Dr3XxjOi2ZgU%3DdywJJ7cYu4I%3D2RRG%2F3VC2%2Bw%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3D7TfUjypqWIM%3DHhUpGINMV34%3DchnBaGkfu4Q%3D8kEinhIoZMk%3DqpjUzrN%2FYEU%3DoV88hWqF2tg%3D4PK%2BJPbKzHM%3DgZlXAWVl0FY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DjggdE0BY47Q%3DJku0VYSH8QM%3Dqt%2FxcrAm7gE%3DVDvQ7F2CN4E%3D000657; PHPSESSID=9ed8214728e2e147328d9aef3374c97f; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customers\nRemote-Ip: 78.210.220.249\nRemote-Port: 55569\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/602.4.8 (KHTML, like Gecko) Version/10.0.3 Safari/602.4.8\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55569\n\n","2017-04-14 18:56:04","2017-04-14 18:56:04"); -INSERT INTO `admin_log` VALUES("89","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3721092971; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3D6kE262o51io%3DJku0VYSH8QM%3DxQyqtmaCzMY%3DU0vJC1ktuBo%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 50063\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50063\n\n","2017-05-02 23:47:23","2017-05-02 23:47:23"); -INSERT INTO `admin_log` VALUES("90","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2045129126; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3D6kE262o51io%3DJku0VYSH8QM%3DxQyqtmaCzMY%3DU0vJC1ktuBo%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 59327\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59327\n\n","2017-05-04 14:15:17","2017-05-04 14:15:17"); -INSERT INTO `admin_log` VALUES("91","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R2045129126; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3D6kE262o51io%3DJku0VYSH8QM%3DxQyqtmaCzMY%3DU0vJC1ktuBo%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; PHPSESSID=0507eb353cdf2271bfb865d182b6a007; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php\nRemote-Ip: 80.12.59.76\nRemote-Port: 37469\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 80.12.59.76\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 80.12.59.76\nX-Remote-Port: 37469\n\n","2017-05-04 16:24:15","2017-05-04 16:24:15"); -INSERT INTO `admin_log` VALUES("92","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3D6kE262o51io%3DJku0VYSH8QM%3DxQyqtmaCzMY%3DU0vJC1ktuBo%3D000113; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; mediaplan=R2045129126; mediaplanBAK=R129291918; PHPSESSID=0507eb353cdf2271bfb865d182b6a007; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 80.12.59.76\nRemote-Port: 34883\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 80.12.59.76\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 80.12.59.76\nX-Remote-Port: 34883\nX-Requested-With: XMLHttpRequest\n\n","2017-05-04 16:35:23","2017-05-04 16:35:23"); -INSERT INTO `admin_log` VALUES("93","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DEjcPI%2F8NN%2FE%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DQyl5gEkdQcI%3DN9xm530GK0E%3Dl1nHhV59FuI%3DvU5JgKC6asY%3D000112; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; mediaplan=R3757163751; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 52781\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 52781\n\n","2017-05-10 20:13:46","2017-05-10 20:13:46"); -INSERT INTO `admin_log` VALUES("94","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3Dqch4a6JwZxw%3DCyapFS%2FxhVQ%3DP6V8RLGxqUE%3D000293; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; mediaplan=R3757163751; PHPSESSID=5e891a39ae93eb3d358b24a4fe7be2b9; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 53581\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53581\nX-Requested-With: XMLHttpRequest\n\n","2017-05-10 20:23:22","2017-05-10 20:23:22"); -INSERT INTO `admin_log` VALUES("95","root","admin","admin","admin.category","11","CREATE","Category test (ID 11) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 421\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3Dqch4a6JwZxw%3DCyapFS%2FxhVQ%3DP6V8RLGxqUE%3D000293; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; mediaplan=R3757163751; PHPSESSID=5e891a39ae93eb3d358b24a4fe7be2b9; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 53686\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53686\n\nthelia_category_creation%5B_token%5D=wW-OOHR8LGXmvndQRcKhJqnmcFWl40C52Ody4ufBtcs&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=test&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-05-10 20:24:28","2017-05-10 20:24:28"); -INSERT INTO `admin_log` VALUES("96","root","admin","admin","admin.product","1","CREATE","Product toto (ID 1) created","POST /thelia233/web/index.php/admin/products/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 755\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3Dqch4a6JwZxw%3DCyapFS%2FxhVQ%3DP6V8RLGxqUE%3D000293; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3D4DmZHeTWmTU%3DUUvD8aqu%2FNU%3DrS8N3vpRN1Y%3D000860; mediaplan=R3757163751; PHPSESSID=5e891a39ae93eb3d358b24a4fe7be2b9; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=11\nRemote-Ip: 78.210.220.249\nRemote-Port: 53836\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53836\n\nthelia_product_creation%5B_token%5D=atTs35h2JTHeQuZKIK2hVsaj9kTzbjUyUM0a8_B-dZs&category_id=11&thelia_product_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D_ID_&thelia_product_creation%5Bdefault_category%5D=11&thelia_product_creation%5Bref%5D=toto&thelia_product_creation%5Btitle%5D=toto&edit_language_id=1&thelia_product_creation%5Blocale%5D=fr_FR&thelia_product_creation%5Btax_rule%5D=1&thelia_product_creation%5Btemplate_id%5D=1&thelia_product_creation%5Bprice%5D=10&thelia_product_creation%5Bcurrency%5D=1&thelia_product_creation%5Btax_price%5D=12&thelia_product_creation%5Bweight%5D=&thelia_product_creation%5Bquantity%5D=&thelia_product_creation%5Bvisible%5D=1","2017-05-10 20:26:27","2017-05-10 20:26:27"); -INSERT INTO `admin_log` VALUES("97","root","admin","admin","admin.category","11","DELETE","Category (ID 11) deleted","POST /thelia233/web/index.php/admin/categories/delete?_token=f01ad8166c6b60cc31369fe4809ff66a HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 14\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3757163751; PHPSESSID=5e891a39ae93eb3d358b24a4fe7be2b9; mediaplanBAK=R129297363; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 78.210.220.249\nRemote-Port: 55758\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55758\n\ncategory_id=11","2017-05-10 20:50:56","2017-05-10 20:50:56"); -INSERT INTO `admin_log` VALUES("98","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3058739727; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 49567\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49567\n\n","2017-05-11 13:54:29","2017-05-11 13:54:29"); -INSERT INTO `admin_log` VALUES("99","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/home HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nConnection: close\nCookie: mediaplan=R3058739727; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nRemote-Ip: 78.210.220.249\nRemote-Port: 57895\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Predictor: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57895\n\n","2017-05-11 15:37:47","2017-05-11 15:37:47"); -INSERT INTO `admin_log` VALUES("100","root","admin","admin","admin","","LOGIN","Authentication successful","GET /thelia233/web/index.php/admin/ajax/thelia_news_feed HTTP/1.1\nAccept: text/html, */*; q=0.01\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; PHPSESSID=3489156ad18eec6ad089db7ec8c8101a; mediaplan=R3058739727; mediaplanBAK=R129296274; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/home\nRemote-Ip: 78.210.220.249\nRemote-Port: 57895\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 0\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57895\nX-Requested-With: XMLHttpRequest\n\n","2017-05-11 15:37:57","2017-05-11 15:37:57"); -INSERT INTO `admin_log` VALUES("101","root","admin","admin","admin.configuration.profile","1","CREATE","Profile Gestion stock (ID 1) created","POST /thelia233/web/index.php/admin/configuration/profiles/add HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 339\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; translation_userMode=1; mediaplan=R3058739727; PHPSESSID=3489156ad18eec6ad089db7ec8c8101a; armcn=cm9vdAA1OGVjZmU5ZjM3NDA3ADU4YjViMWE2YTRmMjA%3D\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/profiles\nRemote-Ip: 78.210.220.249\nRemote-Port: 64786\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 64786\n\nthelia_profile_creation%5B_token%5D=hFN4R--vJx1vZkBL_X0gfyu_yo1gRfkm_BLvakQN2xM&thelia_profile_creation%5Blocale%5D=fr_FR&thelia_profile_creation%5Bcode%5D=Gestion+stock&thelia_profile_creation%5Btitle%5D=Gestion+stock&thelia_profile_creation%5Bchapo%5D=&thelia_profile_creation%5Bdescription%5D=&thelia_profile_creation%5Bpostscriptum%5D=","2017-05-11 17:06:16","2017-05-11 17:06:16"); -INSERT INTO `admin_log` VALUES("102","","","","admin","","LOGIN","Authentication failure for username \'llecorre@me.com\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 277\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807; mediaplanBAK=R129297363\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 61001\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61001\n\nthelia_admin_login%5B_token%5D=2wbEkWaYlTv-BrTZhrAyk0q1qk6MciZdYQbePnVfYKE&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=llecorre%40me.com&thelia_admin_login%5Bpassword%5D=testaro7","2017-05-11 19:38:46","2017-05-11 19:38:46"); -INSERT INTO `admin_log` VALUES("103","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807; mediaplanBAK=R129297363\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 61102\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61102\n\n","2017-05-11 19:40:01","2017-05-11 19:40:01"); -INSERT INTO `admin_log` VALUES("104","root","admin","admin","admin.product","1","CREATE","Product Crème de citron (ID 1) created","POST /thelia233/web/index.php/admin/products/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 798\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807; mediaplanBAK=R129297363\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 61333\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61333\n\nthelia_product_creation%5B_token%5D=H6OVyAIzsEwKlMb6-0IFD23SgimeUKRPFqEL4_K_sVQ&category_id=3&thelia_product_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D_ID_&thelia_product_creation%5Bdefault_category%5D=3&thelia_product_creation%5Bref%5D=Cr%C3%A8me+de+citron&thelia_product_creation%5Btitle%5D=Cr%C3%A8me+de+citron&edit_language_id=1&thelia_product_creation%5Blocale%5D=fr_FR&thelia_product_creation%5Btax_rule%5D=1&thelia_product_creation%5Btemplate_id%5D=1&thelia_product_creation%5Bprice%5D=4.166667&thelia_product_creation%5Bcurrency%5D=1&thelia_product_creation%5Btax_price%5D=5&thelia_product_creation%5Bweight%5D=0%2C250&thelia_product_creation%5Bquantity%5D=5&thelia_product_creation%5Bvisible%5D=1","2017-05-11 19:42:45","2017-05-11 19:42:45"); -INSERT INTO `admin_log` VALUES("105","root","admin","admin","admin.product","","UPDATE","Enregistrement de image pour ID parent 1","POST /thelia233/web/index.php/admin/image/type/product/1/save-ajax HTTP/1.1\nAccept: application/json\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCache-Control: no-cache\nContent-Length: 39171\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryfEGZkQeWVpXeBAni\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?product_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 65284\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 65284\nX-Requested-With: XMLHttpRequest\n\n","2017-05-11 20:42:19","2017-05-11 20:42:19"); -INSERT INTO `admin_log` VALUES("106","root","admin","admin","admin.configuration.template","1","UPDATE","Template Pot (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 390\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 65284\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 65284\n\ntemplate_id=1&save_mode=stay&thelia_template_modification%5Bid%5D=1&thelia_template_modification%5B_token%5D=iRxkl_OmS69yvEzh_uoLmU-C9yOTCIounRXMat4QypE&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pot","2017-05-11 20:42:54","2017-05-11 20:42:54"); -INSERT INTO `admin_log` VALUES("107","root","admin","admin","admin.configuration.template","1","UPDATE","Template Pot (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 391\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 65284\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 65284\n\ntemplate_id=1&save_mode=close&thelia_template_modification%5Bid%5D=1&thelia_template_modification%5B_token%5D=iRxkl_OmS69yvEzh_uoLmU-C9yOTCIounRXMat4QypE&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Pot","2017-05-11 20:43:06","2017-05-11 20:43:06"); -INSERT INTO `admin_log` VALUES("108","root","admin","admin","admin.product","1","UPDATE","Product Crème de citron (ID 1) modified","POST /thelia233/web/index.php/admin/products/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 814\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?product_id=1&page=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 49195\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49195\n\npage=1&product_id=1¤t_tab=general&thelia_product_modification%5B_token%5D=Ild4idWdBizpiJtuqrb_G2AGPQRHZnEyv8Hty25-t0Y&thelia_product_modification%5Bid%5D=1&thelia_product_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D3%26page%3D1&thelia_product_modification%5Blocale%5D=fr_FR&thelia_product_modification%5Bref%5D=Citron&thelia_product_modification%5Btitle%5D=Cr%C3%A8me+de+citron&thelia_product_modification%5Bchapo%5D=&thelia_product_modification%5Bdescription%5D=&thelia_product_modification%5Bpostscriptum%5D=&thelia_product_modification%5Bdefault_category%5D=3&thelia_product_modification%5Bvirtual_document_id%5D=0&thelia_product_modification%5Bbrand_id%5D=0&thelia_product_modification%5Bvisible%5D=1&save_mode=stay","2017-05-11 20:46:35","2017-05-11 20:46:35"); -INSERT INTO `admin_log` VALUES("109","root","admin","admin","admin.customer","33","UPDATE","Customer PS_1(LE CORRE Laurent) (ID 33) modified","POST /thelia233/web/index.php/admin/customer/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 914\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=563b7c19d977612a3738ea9e2521dfe8; PHPSESSID=1981da17baf50cf997bde13ff5fd0807\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/customer/update?customer_id=33&page=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 49544\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49544\n\nsave_mode=close&thelia_customer_update%5B_token%5D=h4Oo5zhGkwlROFMKk4MMINW0il8sOBvoCSXGJ1Ci6uM&page=3&customer_id=33&thelia_customer_update%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcustomers%3Fpage%3D3&thelia_customer_update%5Btitle%5D=1&thelia_customer_update%5Bfirstname%5D=Laurent&thelia_customer_update%5Blastname%5D=LE+CORRE&thelia_customer_update%5Bemail%5D=llecorre%40netcourrier.com&thelia_customer_update%5Bdiscount%5D=&thelia_customer_update%5Bpassword%5D=testaro7&thelia_customer_update%5Bcompany%5D=&thelia_customer_update%5Baddress1%5D=5+rue+des+Crouzettes&thelia_customer_update%5Baddress2%5D=&thelia_customer_update%5Baddress3%5D=&thelia_customer_update%5Bzipcode%5D=31120&thelia_customer_update%5Bcity%5D=PORTET-SUR-GARONNE&thelia_customer_update%5Bcountry%5D=64&thelia_customer_update%5Bphone%5D=&thelia_customer_update%5Bcellphone%5D=0605040302","2017-05-11 20:51:15","2017-05-11 20:51:15"); -INSERT INTO `admin_log` VALUES("110","","","","admin","","LOGIN","Authentication failure for username \'llecorre@me.com\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 277\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe; mediaplanBAK=R129298452\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 60234\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60234\n\nthelia_admin_login%5B_token%5D=sJun9uxjtzmVGJhWn_OciyIGg1UTWtS-an1qLVoTyQA&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=llecorre%40me.com&thelia_admin_login%5Bpassword%5D=testaro7","2017-05-11 23:30:39","2017-05-11 23:30:39"); -INSERT INTO `admin_log` VALUES("111","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe; mediaplanBAK=R129298452\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 60234\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 60234\n\n","2017-05-11 23:30:44","2017-05-11 23:30:44"); -INSERT INTO `admin_log` VALUES("112","root","admin","admin","admin.folder","1","CREATE","Folder test1 (ID 1) created","POST /thelia233/web/index.php/admin/folders/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 393\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders\nRemote-Ip: 78.210.220.249\nRemote-Port: 61467\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61467\n\nthelia_folder_creation%5B_token%5D=JgbkSmfL9GXNDqse_4sVUwA-5K_3b5i20aTGYsqyVfc&thelia_folder_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Ffolders%2Fupdate%2F_ID_&thelia_folder_creation%5Bparent%5D=0&thelia_folder_creation%5Btitle%5D=test1&edit_language_id=1&thelia_folder_creation%5Blocale%5D=fr_FR&thelia_folder_creation%5Bvisible%5D=1","2017-05-11 23:48:10","2017-05-11 23:48:10"); -INSERT INTO `admin_log` VALUES("113","root","admin","admin","admin.content","1","CREATE","Content test 2 (ID 1) created","POST /thelia233/web/index.php/admin/content/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 417\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders?parent=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61558\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61558\n\nthelia_content_creation%5B_token%5D=DhsXDbgLBdRczRjMHFC9Wfee2xfMBaESfTCAcABzN3Q&parent=1&thelia_content_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F_ID_&thelia_content_creation%5Bdefault_folder%5D=1&thelia_content_creation%5Btitle%5D=test+2&edit_language_id=1&thelia_content_creation%5Blocale%5D=fr_FR&thelia_content_creation%5Bvisible%5D=1","2017-05-11 23:49:17","2017-05-11 23:49:17"); -INSERT INTO `admin_log` VALUES("114","root","admin","admin","admin.content","1","UPDATE","Content test 2 (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 630\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61558\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61558\n\nsave_mode=close&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=test+2&thelia_content_modification%5Bchapo%5D=&thelia_content_modification%5Bdescription%5D=&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-11 23:49:24","2017-05-11 23:49:24"); -INSERT INTO `admin_log` VALUES("115","root","admin","admin","admin.content","1","UPDATE","Content Description de nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 702\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61687\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61687\n\nsave_mode=close&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Description+de+nos+pots&thelia_content_modification%5Bchapo%5D=Quelques+informations+compl%C3%A9mentaires+sur+nos+pots&thelia_content_modification%5Bdescription%5D=&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-11 23:50:27","2017-05-11 23:50:27"); -INSERT INTO `admin_log` VALUES("116","root","admin","admin","admin.content","1","UPDATE","Content Nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 752\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61794\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61794\n\nsave_mode=stay&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Nos+pots&thelia_content_modification%5Bchapo%5D=Quelques+informations+compl%C3%A9mentaires+sur+nos+pots&thelia_content_modification%5Bdescription%5D=Nos+produits+sont+conditionn%C3%A9s+sous+diff%C3%A9rentes+tailles.&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-11 23:51:46","2017-05-11 23:51:46"); -INSERT INTO `admin_log` VALUES("117","root","admin","admin","admin.content","","UPDATE","Enregistrement de image pour ID parent 1","POST /thelia233/web/index.php/admin/image/type/content/1/save-ajax HTTP/1.1\nAccept: application/json\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nCache-Control: no-cache\nContent-Length: 64356\nContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryJpdEFLOlXlLAIDwB\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1?current_tab=general&folder_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61794\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61794\nX-Requested-With: XMLHttpRequest\n\n","2017-05-11 23:52:00","2017-05-11 23:52:00"); -INSERT INTO `admin_log` VALUES("118","root","admin","admin","admin.folder","1","UPDATE","Folder Pots (ID 1) modified","POST /thelia233/web/index.php/admin/folders/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 609\nContent-Type: application/x-www-form-urlencoded\nCookie: acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3D6mzmBPB57O0%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3D3%2BcU86KhSTQ%3D2Bsv%2F%2FeKXYE%3D000307; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 61794\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 61794\n\nsave_mode=close&folder_id=1¤t_tab=general&thelia_folder_modification%5Bid%5D=1&thelia_folder_modification%5B_token%5D=RE0majFF0-eK-ZYOwnfMV1vXD_mikuOJLXcIYAoOumY&thelia_folder_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Ffolders%2Fupdate%2F1&thelia_folder_modification%5Blocale%5D=fr_FR&thelia_folder_modification%5Btitle%5D=Pots&thelia_folder_modification%5Bchapo%5D=&thelia_folder_modification%5Bdescription%5D=&thelia_folder_modification%5Bpostscriptum%5D=&thelia_folder_modification%5Bparent%5D=0&thelia_folder_modification%5Bvisible%5D=1","2017-05-11 23:52:51","2017-05-11 23:52:51"); -INSERT INTO `admin_log` VALUES("119","root","admin","admin","admin.content","1","UPDATE","Content Nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 776\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3DqGOPgcOOXEw%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3DXHyAm8iqkE4%3DeCjR0FglLb8%3D000307; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1\nRemote-Ip: 78.210.220.249\nRemote-Port: 62617\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62617\n\ncontent_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Nos+pots&thelia_content_modification%5Bchapo%5D=&thelia_content_modification%5Bdescription%5D=Afin+que+vous+vous+rendiez+compte+de+la+taille+des+diff%C3%A9rents+pots+que+nous+proposons%2C+voici+%C3%A0+quoi+ressemblent+nos+conditionnements.&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1&save_mode=stay","2017-05-12 00:02:42","2017-05-12 00:02:42"); -INSERT INTO `admin_log` VALUES("120","root","admin","admin","admin.content","1","UPDATE","Content Nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 1089\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3DqGOPgcOOXEw%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3DXHyAm8iqkE4%3DeCjR0FglLb8%3D000307; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1?current_tab=association&folder_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 62743\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62743\n\nsave_mode=stay&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Nos+pots&thelia_content_modification%5Bchapo%5D=&thelia_content_modification%5Bdescription%5D=Afin+que+vous+vous+rendiez+compte+de+la+taille+des+diff%C3%A9rents+pots+que+nous+proposons%2C+voici+%C3%A0+quoi+ressemblent+nos+conditionnements.%0D%0A%0D%0A*+Les+poids+de+nos+pots+sont+indiqu%C3%A9s+%C3%A0+titre+indicatif+et+peuvent+varier+en+fonction+du+contenu.%0D%0AContenance%09Poids+net+moyen%09Hauteur%09Diam%C3%A8tre%0D%0A41ml%0945g%0955mm%0945mm%0D%0A106ml%09115g%0975mm%0950mm%0D%0A228ml%09245g%0988mm%0968mm%0D%0A375ml%09430g%09122mm%0970mm%0D%0A+&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-12 00:04:21","2017-05-12 00:04:21"); -INSERT INTO `admin_log` VALUES("121","root","admin","admin","admin.content","1","UPDATE","Suppression de image, ID 1, ID parent 1","POST /thelia233/web/index.php/admin/image/type/content/delete/1 HTTP/1.1\nAccept: */*\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 0\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3DqGOPgcOOXEw%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3DXHyAm8iqkE4%3DeCjR0FglLb8%3D000307; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1?current_tab=general&folder_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 62743\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62743\nX-Requested-With: XMLHttpRequest\n\n","2017-05-12 00:04:52","2017-05-12 00:04:52"); -INSERT INTO `admin_log` VALUES("122","root","admin","admin","admin.content","1","UPDATE","Content Nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/content/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 1112\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3DqGOPgcOOXEw%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3DXHyAm8iqkE4%3DeCjR0FglLb8%3D000307; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; mediaplan=R3058739727; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7; PHPSESSID=098747cad765ad6f16a9343b97c083fe\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/content/update/1?current_tab=general&folder_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 62816\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 62816\n\nsave_mode=stay&content_id=1¤t_tab=general&thelia_content_modification%5Bid%5D=1&thelia_content_modification%5B_token%5D=3ar1t9DW7v_ijN3cD-bLF3tI4ED0RI7gIkMn5F8h2dI&thelia_content_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcontent%2Fupdate%2F1&thelia_content_modification%5Blocale%5D=fr_FR&thelia_content_modification%5Btitle%5D=Nos+pots&thelia_content_modification%5Bchapo%5D=&thelia_content_modification%5Bdescription%5D=Afin+que+vous+vous+rendiez+compte+de+la+taille+des+diff%C3%A9rents+pots+que+nous+proposons%2C+voici+%C3%A0+quoi+ressemblent+nos+conditionnements.%0D%0A%0D%0A*+Les+poids+de+nos+pots+sont+indiqu%C3%A9s+%C3%A0+titre+indicatif+et+peuvent+varier+en+fonction+du+contenu.%0D%0AContenance%09Poids+net+moyen%09Hauteur%09Diam%C3%A8tre%0D%0A41ml%0945g%0955mm%0945mm%0D%0A106ml%09115g%0975mm%0950mm%3Cimg+src%3D%22pots.jpg%22%3E%0D%0A228ml%09245g%0988mm%0968mm%0D%0A375ml%09430g%09122mm%0970mm&thelia_content_modification%5Bpostscriptum%5D=&thelia_content_modification%5Bdefault_folder%5D=1&thelia_content_modification%5Bvisible%5D=1","2017-05-12 00:05:14","2017-05-12 00:05:14"); -INSERT INTO `admin_log` VALUES("123","","","","admin","","LOGIN","Authentication failure for username \'root\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3DpZLwAVz2DUg%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3DGnHG99y0klw%3DGfbUF02Mfhc%3D000307; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; mediaplan=R3058818135; PHPSESSID=1d2a1c9d277182bc2dd378a574fa86f2; mediaplanBAK=R129293007; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 49978\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49978\nX-Remote-Proto: http\n\nthelia_admin_login%5B_token%5D=xuinuhdIQ3k2Es9MCl0YHWM_fbCMOvhMuFHdcfkOu2M&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=root&thelia_admin_login%5Bpassword%5D=macleo02","2017-05-22 19:03:15","2017-05-22 19:03:15"); -INSERT INTO `admin_log` VALUES("124","","","","admin","","LOGIN","Authentication failure for username \'root\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 268\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3DpZLwAVz2DUg%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3DGnHG99y0klw%3DGfbUF02Mfhc%3D000307; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; mediaplan=R3058818135; PHPSESSID=1d2a1c9d277182bc2dd378a574fa86f2; mediaplanBAK=R129293007; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 49978\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49978\nX-Remote-Proto: http\n\nthelia_admin_login%5B_token%5D=xuinuhdIQ3k2Es9MCl0YHWM_fbCMOvhMuFHdcfkOu2M&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=root&thelia_admin_login%5Bpassword%5D=Triumph%2331","2017-05-22 19:03:29","2017-05-22 19:03:29"); -INSERT INTO `admin_log` VALUES("125","root","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3DpZLwAVz2DUg%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3DGnHG99y0klw%3DGfbUF02Mfhc%3D000307; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; mediaplan=R3058818135; PHPSESSID=1d2a1c9d277182bc2dd378a574fa86f2; mediaplanBAK=R129293007; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 49978\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 49978\nX-Remote-Proto: http\n\n","2017-05-22 19:03:43","2017-05-22 19:03:43"); -INSERT INTO `admin_log` VALUES("126","root","admin","admin","admin.configuration.administrator","1","UPDATE","Administrator admin (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/administrators/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-fr\nContent-Length: 629\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3Djf%2Fb12lflzE%3D3G3w7ipZGHQ%3DJR4c%2F8SYC%2FA%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DmQhYh4HnP3Y%3DvSsG2HZqkTg%3DpZLwAVz2DUg%3DskQOM0C%2FCIM%3DSrc7SS1Bf0s%3Dy9ZanMLIB4k%3DvYdd4A9KAb8%3Dxsf3wmN4BCo%3DDp7%2FRt9DlWM%3DCO2mImoJmtI%3DrkzBb6HEePY%3DxLFFWI5xqkQ%3Dxsf3wmN4BCo%3DXfpNvukxq%2BM%3Dncucnhtbljs%3DtNBwrp8Hjk8%3DN3KHwMALwxI%3DMRIaQI3U88Y%3D8duhrlhkuUc%3D%2BYKc9H13jZo%3DDxEOe5JOUcM%3D2mNqDsX4lTo%3DAQRgsJfiZAo%3DJibPXqAM0a0%3DVkFgjhqSTKc%3DEyJTx7Dx2uc%3D2n12SmAhy9Y%3DLSFUnFlAWhI%3DGB3Twv6MYSQ%3DGnHG99y0klw%3DGfbUF02Mfhc%3D000307; acf6aa8ffd3c1bfee55b1508c3ccaa62=ShnNuOrx55E%3DXuWVY5I0%2Fgs%3DR06GpNSp1Ic%3DDjMsBax3zX8%3DeggriWGeVxM%3DG8fcGVCJFA4%3DO2TkFZY6pOY%3Dm9Njxsz9NG8%3D2WsvKXp664U%3DrlUnkLAjpf0%3D7GRXNCQupzQ%3D4DH9nXJqKME%3DyJh0VhGta%2F8%3DEZAGQ2F5sUY%3D974A7okcJqE%3DaKMydpE3YjI%3DZA2AHVPMDU0%3DUy7LHyHreiw%3DxT9WXNkuCVk%3DfIwPAZvyme0%3DTQD37QJlZ0g%3DFD4fe6EzXNY%3DY%2Fy9kuEOlIY%3DWSynBjdKy8M%3DHNJMMIa3ldE%3DAPSgzuTAkmY%3Dv2BjljdF%2BwA%3DIGzG26XNwwI%3Dy81dNl2%2BtFI%3DoU98HxmLv%2F0%3DEJq0ZX%2FHj8o%3Dnd0HsYNjyrc%3DxvQMJKoYF4Y%3D1K1H0Gbk%2F4s%3Drzche1wu7AY%3DozH9vSi1Gww%3DgptTLwStRnw%3DFddDyjoTRlI%3D80aIVZl%2FGpc%3DaCXYd%2BEeOVo%3DZsBmiNMqAgY%3Dl%2F4LWvQYbjI%3D3qEb%2BTyWNUY%3DBgrr685d820%3DAI0sjf05UG0%3DToseuywFc1k%3DVYOBnnfsQdA%3Dj3gJNogyJUY%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DLMYsehzw%2FCk%3Dgdjh%2BGnntRc%3D8g5FLt9FIcw%3DkAPnzyDVjgQ%3DQcoczsjBILk%3DIsygLWT8iy8%3DgptTLwStRnw%3DJbZbWavwJVE%3DVs%2B3SVeMsFw%3Dh2DfMDpBnes%3DchnBaGkfu4Q%3DST1GI4cbbWg%3Dxv4p%2ByXILjM%3DjPSXL3bgDU0%3DchnBaGkfu4Q%3DST1GI4cbbWg%3D51oFpw8JWuY%3Dj85eWK6nuOw%3DchnBaGkfu4Q%3DST1GI4cbbWg%3DK1kbWALY86c%3D3ZszRzVyeSI%3DAQZlFElw1W8%3D9t2HVhKWcmw%3DOioJJAhkwQk%3DwiYaGWhVVqk%3Dkc4hlCbnCa8%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DuXEwuW7ZNRY%3DeLonTI%2BmP7o%3DNVfk1fAjhm0%3D15Vk5V8MpqY%3DsCoO%2BcWWu0U%3DFwWwJDDfRjM%3Dt2MQ5mdgsjE%3DIrEdhQRRBVk%3DmClMZl9i7yM%3DoIVlooByrn4%3D%2FuwgYemUiOQ%3DwxdMo5Rr0Us%3DV0AjkYdtuEM%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3D4FbLhxPxYPw%3Dq9DXp7UNIgs%3Db9oU3%2BjyoGk%3DAAs%2BGGxOy%2FQ%3DJ2oop%2F4TS%2F0%3DFk6x8xWnC74%3DHoUNvAjaFsk%3Dr3XxjOi2ZgU%3DmJxBtOjJ6sA%3D2RRG%2F3VC2%2Bw%3DdZGuD5uSPAI%3DpnKkbBx1ROY%3DQhdTTWjU9G4%3DNwOxbNkVMVE%3DJkEJlodzMnQ%3DIPQ%2Bdr4skEM%3D5QmbgdHMLEc%3Difegp4mERos%3DGO4vq4FLV9M%3DI067hZG1Q84%3D000919; mediaplan=R3058818135; PHPSESSID=1d2a1c9d277182bc2dd378a574fa86f2; mediaplanBAK=R129293007; thelia_cart=ce333c94f76634ff2557ec7b38ee96d7\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/administrators\nRemote-Ip: 78.210.220.249\nRemote-Port: 50185\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.1 Safari/603.1.30\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50185\nX-Remote-Proto: http\n\nthelia_admin_administrator_modification%5Bid%5D=1&thelia_admin_administrator_modification%5B_token%5D=J2DQO7-cy8y82JvIt87EAvryAoO_mCn8tiHoSgoZnvI&thelia_admin_administrator_modification%5Blogin%5D=admin&thelia_admin_administrator_modification%5Bfirstname%5D=admin&thelia_admin_administrator_modification%5Bemail%5D=boutiquefanny%40free.fr&thelia_admin_administrator_modification%5Blastname%5D=admin&thelia_admin_administrator_modification%5Bpassword%5D=&thelia_admin_administrator_modification%5Bpassword_confirm%5D=&thelia_admin_administrator_modification%5Blocale%5D=fr_FR&thelia_admin_administrator_modification%5Bprofile%5D=0","2017-05-22 19:05:19","2017-05-22 19:05:19"); -INSERT INTO `admin_log` VALUES("127","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 195.81.235.66\nRemote-Port: 24651\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 24651\nX-Remote-Proto: http\n\n","2017-05-23 12:37:05","2017-05-23 12:37:05"); -INSERT INTO `admin_log` VALUES("128","admin","admin","admin","admin.configuration.attribute","5","CREATE","Attribute A la botte (ID 5) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 369\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 195.81.235.66\nRemote-Port: 41115\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 41115\nX-Remote-Proto: http\n\nthelia_attribute_creation%5B_token%5D=M9eHUWVVc5ORnc_Vafvhs0dJIfQ7Usb2hFI42Gmz6hY&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=A+la+botte&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR","2017-05-23 12:42:30","2017-05-23 12:42:30"); -INSERT INTO `admin_log` VALUES("129","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la botte (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 593\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 41273\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 41273\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+botte&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-05-23 12:42:36","2017-05-23 12:42:36"); -INSERT INTO `admin_log` VALUES("130","admin","admin","admin","admin.configuration.attribute","6","CREATE","Attribute Au poids (ID 6) created","POST /thelia233/web/index.php/admin/configuration/attributes/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 367\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes\nRemote-Ip: 195.81.235.66\nRemote-Port: 33631\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 33631\nX-Remote-Proto: http\n\nthelia_attribute_creation%5B_token%5D=M9eHUWVVc5ORnc_Vafvhs0dJIfQ7Usb2hFI42Gmz6hY&thelia_attribute_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D_ID_&thelia_attribute_creation%5Btitle%5D=Au+poids&edit_language_id=1&thelia_attribute_creation%5Blocale%5D=fr_FR","2017-05-23 12:42:45","2017-05-23 12:42:45"); -INSERT INTO `admin_log` VALUES("131","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 591\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 33736\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 33736\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=","2017-05-23 12:42:49","2017-05-23 12:42:49"); -INSERT INTO `admin_log` VALUES("132","admin","admin","admin","admin.configuration.template","3","CREATE","Template Au détail (ID 3) created","POST /thelia233/web/index.php/admin/configuration/templates/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 366\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates\nRemote-Ip: 195.81.235.66\nRemote-Port: 34186\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 34186\nX-Remote-Proto: http\n\nthelia_template_creation%5B_token%5D=2spDOCy7c3zpKjbfzq7lVWJFgAxMRkzRQqKhksyK9T8&thelia_template_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates%2Fupdate%3Ftemplate_id%3D_ID_&thelia_template_creation%5Bname%5D=Au+d%C3%A9tail&edit_language_id=1&thelia_template_creation%5Blocale%5D=fr_FR","2017-05-23 12:43:05","2017-05-23 12:43:05"); -INSERT INTO `admin_log` VALUES("133","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 195.81.235.66\nRemote-Port: 14845\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 14845\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=emMMfIZgrZeXEX1SxEmUw1MsOwTwBa0cc1ZzJyocauk&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-23 12:44:35","2017-05-23 12:44:35"); -INSERT INTO `admin_log` VALUES("134","admin","admin","admin","admin.category","11","CREATE","Category Légumes (ID 11) created","POST /thelia233/web/index.php/admin/categories/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 429\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog\nRemote-Ip: 195.81.235.66\nRemote-Port: 15314\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 15314\nX-Remote-Proto: http\n\nthelia_category_creation%5B_token%5D=lxJ6SAotGjEuZA4jcXpMaj6VudAWcf6luOIjc6kJ5fs&thelia_category_creation%5Bparent%5D=0&thelia_category_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%2Fupdate%3Fcategory_id%3D_ID_&thelia_category_creation%5Btitle%5D=L%C3%A9gumes&edit_language_id=1&thelia_category_creation%5Blocale%5D=fr_FR&thelia_category_creation%5Bvisible%5D=1","2017-05-23 12:44:56","2017-05-23 12:44:56"); -INSERT INTO `admin_log` VALUES("135","admin","admin","admin","admin.category","11","UPDATE","Category Légumes (ID 11) modified","POST /thelia233/web/index.php/admin/categories/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 684\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/categories/update?category_id=11\nRemote-Ip: 195.81.235.66\nRemote-Port: 44783\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 44783\nX-Remote-Proto: http\n\nsave_mode=close&category_id=11¤t_tab=general&thelia_category_modification%5Blocale%5D=fr_FR&thelia_category_modification%5Bid%5D=11&thelia_category_modification%5B_token%5D=Pn8XaDKxyhFSyl60f_oJpa2KPYFGwFxBNX1WhWPc3co&thelia_category_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcatalog&thelia_category_modification%5Btitle%5D=L%C3%A9gumes&thelia_category_modification%5Bchapo%5D=&thelia_category_modification%5Bdescription%5D=&thelia_category_modification%5Bpostscriptum%5D=&thelia_category_modification%5Bparent%5D=0&thelia_category_modification%5Bdefault_template_id%5D=3&thelia_category_modification%5Bvisible%5D=1","2017-05-23 12:45:13","2017-05-23 12:45:13"); -INSERT INTO `admin_log` VALUES("136","admin","admin","admin","admin.product","2","CREATE","Product Blettes (ID 2) created","POST /thelia233/web/index.php/admin/products/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 765\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/catalog?category_id=11\nRemote-Ip: 195.81.235.66\nRemote-Port: 46172\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 46172\nX-Remote-Proto: http\n\nthelia_product_creation%5B_token%5D=VaIa6nQFKElw9F3WdqSIQiDiLaZOHPYMPFhM-8ThGMs&category_id=11&thelia_product_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D_ID_&thelia_product_creation%5Bdefault_category%5D=11&thelia_product_creation%5Bref%5D=Blettes&thelia_product_creation%5Btitle%5D=Blettes&edit_language_id=1&thelia_product_creation%5Blocale%5D=fr_FR&thelia_product_creation%5Btax_rule%5D=1&thelia_product_creation%5Btemplate_id%5D=3&thelia_product_creation%5Bprice%5D=1&thelia_product_creation%5Bcurrency%5D=1&thelia_product_creation%5Btax_price%5D=1.20&thelia_product_creation%5Bweight%5D=100&thelia_product_creation%5Bquantity%5D=&thelia_product_creation%5Bvisible%5D=1","2017-05-23 12:46:29","2017-05-23 12:46:29"); -INSERT INTO `admin_log` VALUES("137","admin","admin","admin","admin.configuration.attribute","1","CREATE","Attributeav 1 (ID 1) created","POST /thelia233/web/index.php/admin/configuration/attributes-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 456\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 27934\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 27934\nX-Remote-Proto: http\n\nthelia_attributeav_creation%5Battribute_id%5D=&thelia_attributeav_creation%5B_token%5D=vGMNQODcLbGkotFeIyoozJ6zUCMsJKapZTDgxypVn6s&attribute_id=5&thelia_attributeav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D5&thelia_attributeav_creation%5Battribute_id%5D=5&thelia_attributeav_creation%5Btitle%5D=1&thelia_attributeav_creation%5Blocale%5D=fr_FR","2017-05-23 12:48:16","2017-05-23 12:48:16"); -INSERT INTO `admin_log` VALUES("138","admin","admin","admin","admin.configuration.attribute","2","CREATE","Attributeav 2 (ID 2) created","POST /thelia233/web/index.php/admin/configuration/attributes-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 456\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 19711\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 19711\nX-Remote-Proto: http\n\nthelia_attributeav_creation%5Battribute_id%5D=&thelia_attributeav_creation%5B_token%5D=vGMNQODcLbGkotFeIyoozJ6zUCMsJKapZTDgxypVn6s&attribute_id=5&thelia_attributeav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D5&thelia_attributeav_creation%5Battribute_id%5D=5&thelia_attributeav_creation%5Btitle%5D=2&thelia_attributeav_creation%5Blocale%5D=fr_FR","2017-05-23 12:48:24","2017-05-23 12:48:24"); -INSERT INTO `admin_log` VALUES("139","admin","admin","admin","admin.configuration.attribute","3","CREATE","Attributeav 3 (ID 3) created","POST /thelia233/web/index.php/admin/configuration/attributes-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 456\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 19854\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 19854\nX-Remote-Proto: http\n\nthelia_attributeav_creation%5Battribute_id%5D=&thelia_attributeav_creation%5B_token%5D=vGMNQODcLbGkotFeIyoozJ6zUCMsJKapZTDgxypVn6s&attribute_id=5&thelia_attributeav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D5&thelia_attributeav_creation%5Battribute_id%5D=5&thelia_attributeav_creation%5Btitle%5D=3&thelia_attributeav_creation%5Blocale%5D=fr_FR","2017-05-23 12:48:29","2017-05-23 12:48:29"); -INSERT INTO `admin_log` VALUES("140","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la botte (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 671\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 19966\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 19966\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+botte&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=1&attribute_values%5B2%5D=2&attribute_values%5B3%5D=3","2017-05-23 12:48:33","2017-05-23 12:48:33"); -INSERT INTO `admin_log` VALUES("141","admin","admin","admin","admin.configuration.attribute","4","CREATE","Attributeav Poids (ID 4) created","POST /thelia233/web/index.php/admin/configuration/attributes-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 460\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 28657\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 28657\nX-Remote-Proto: http\n\nthelia_attributeav_creation%5Battribute_id%5D=&thelia_attributeav_creation%5B_token%5D=vGMNQODcLbGkotFeIyoozJ6zUCMsJKapZTDgxypVn6s&attribute_id=6&thelia_attributeav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes%2Fupdate%3Fattribute_id%3D6&thelia_attributeav_creation%5Battribute_id%5D=6&thelia_attributeav_creation%5Btitle%5D=Poids&thelia_attributeav_creation%5Blocale%5D=fr_FR","2017-05-23 12:48:55","2017-05-23 12:48:55"); -INSERT INTO `admin_log` VALUES("142","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 656\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 12445\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 12445\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B4%5D=Veuillez+indiquer+le+poids+souhait%C3%A9","2017-05-23 12:52:17","2017-05-23 12:52:17"); -INSERT INTO `admin_log` VALUES("143","admin","admin","admin","admin.configuration.attribute","2","DELETE","Attributeav (ID 2) deleted","POST /thelia233/web/index.php/admin/configuration/attributes-av/delete?_token=24c2ba7b1c595960d926a2ea46330f38 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=0\nContent-Length: 31\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 12838\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 12838\nX-Remote-Proto: http\n\nattribute_id=5&attributeav_id=2","2017-05-23 12:52:41","2017-05-23 12:52:41"); -INSERT INTO `admin_log` VALUES("144","admin","admin","admin","admin.configuration.attribute","3","DELETE","Attributeav (ID 3) deleted","POST /thelia233/web/index.php/admin/configuration/attributes-av/delete?_token=6479f688fc9833f66482dcf0bf38d07d HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=0\nContent-Length: 31\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5&order=manual\nRemote-Ip: 195.81.235.66\nRemote-Port: 12934\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 12934\nX-Remote-Proto: http\n\nattribute_id=5&attributeav_id=3","2017-05-23 12:52:44","2017-05-23 12:52:44"); -INSERT INTO `admin_log` VALUES("145","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la botte (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 661\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5&order=manual\nRemote-Ip: 195.81.235.66\nRemote-Port: 41864\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 41864\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+botte&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=Veuillez+indiquer+le+nombre+d%27unit%C3%A9s","2017-05-23 12:52:54","2017-05-23 12:52:54"); -INSERT INTO `admin_log` VALUES("146","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la botte (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 648\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 47197\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 47197\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+botte&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=Commander+%C3%A0+la+pi%C3%A8ce","2017-05-23 12:56:20","2017-05-23 12:56:20"); -INSERT INTO `admin_log` VALUES("147","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la pièce (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 653\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 26333\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 26333\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+pi%C3%A8ce&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=Commander+%C3%A0+la+pi%C3%A8ce","2017-05-23 12:56:31","2017-05-23 12:56:31"); -INSERT INTO `admin_log` VALUES("148","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 634\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 26678\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 26678\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B4%5D=Commander+au+poids","2017-05-23 12:56:40","2017-05-23 12:56:40"); -INSERT INTO `admin_log` VALUES("149","admin","admin","admin","admin.configuration.feature","1","CREATE","Feature catégorie (ID 1) created","POST /thelia233/web/index.php/admin/configuration/features/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 403\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features\nRemote-Ip: 195.81.235.66\nRemote-Port: 15495\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 15495\nX-Remote-Proto: http\n\nthelia_feature_creation%5B_token%5D=lYk2f4gwV3U_RRE44U4U_KddWyZgrNTdQQiR451ciZo&thelia_feature_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures%2Fupdate%3Ffeature_id%3D_ID_&thelia_feature_creation%5Btitle%5D=cat%C3%A9gorie&edit_language_id=1&thelia_feature_creation%5Blocale%5D=fr_FR&thelia_feature_creation%5Badd_to_all%5D=1","2017-05-23 13:01:51","2017-05-23 13:01:51"); -INSERT INTO `admin_log` VALUES("150","admin","admin","admin","admin.configuration.feature","1","CREATE","Featureav Bio (ID 1) created","POST /thelia233/web/index.php/admin/configuration/features-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 436\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=1\nRemote-Ip: 195.81.235.66\nRemote-Port: 34718\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 34718\nX-Remote-Proto: http\n\nthelia_featureav_creation%5Bfeature_id%5D=&thelia_featureav_creation%5B_token%5D=4iQjEOrj0zjqhmXWkuRNYKOqzR79bfIM84lfrH5fbMs&feature_id=1&thelia_featureav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures%2Fupdate%3Ffeature_id%3D1&thelia_featureav_creation%5Bfeature_id%5D=1&thelia_featureav_creation%5Btitle%5D=Bio&thelia_featureav_creation%5Blocale%5D=fr_FR","2017-05-23 13:02:17","2017-05-23 13:02:17"); -INSERT INTO `admin_log` VALUES("151","admin","admin","admin","admin.configuration.feature","1","UPDATE","Feature catégorie (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/features/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 601\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=1\nRemote-Ip: 195.81.235.66\nRemote-Port: 44103\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 44103\nX-Remote-Proto: http\n\nsave_mode=close&thelia_feature_modification%5Bid%5D=1&feature_id=1&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5B_token%5D=_y1w0aYjki1CdmTXewVuHN1SmrdlxTCpOj-bmuVZXRQ&thelia_feature_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5Btitle%5D=cat%C3%A9gorie&thelia_feature_modification%5Bchapo%5D=&thelia_feature_modification%5Bdescription%5D=&thelia_feature_modification%5Bpostscriptum%5D=&feature_values%5B1%5D=Bio","2017-05-23 13:02:23","2017-05-23 13:02:23"); -INSERT INTO `admin_log` VALUES("152","admin","admin","admin","admin.folder","1","UPDATE","Folder Taille de nos pots (ID 1) modified","POST /thelia233/web/index.php/admin/folders/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 623\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/folders/update/1\nRemote-Ip: 195.81.235.66\nRemote-Port: 23075\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 23075\nX-Remote-Proto: http\n\nsave_mode=close&folder_id=1¤t_tab=general&thelia_folder_modification%5Bid%5D=1&thelia_folder_modification%5B_token%5D=83CI2-FawClFedEQjnJDf4nAa-tryPMcKNSNA9cQFzY&thelia_folder_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Ffolders%2Fupdate%2F1&thelia_folder_modification%5Blocale%5D=fr_FR&thelia_folder_modification%5Btitle%5D=Taille+de+nos+pots&thelia_folder_modification%5Bchapo%5D=&thelia_folder_modification%5Bdescription%5D=&thelia_folder_modification%5Bpostscriptum%5D=&thelia_folder_modification%5Bparent%5D=0&thelia_folder_modification%5Bvisible%5D=1","2017-05-23 13:02:54","2017-05-23 13:02:54"); -INSERT INTO `admin_log` VALUES("153","admin","admin","admin","admin.configuration.feature","2","CREATE","Feature Poids (ID 2) created","POST /thelia233/web/index.php/admin/configuration/features/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 352\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features\nRemote-Ip: 195.81.235.66\nRemote-Port: 26331\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 26331\nX-Remote-Proto: http\n\nthelia_feature_creation%5B_token%5D=lYk2f4gwV3U_RRE44U4U_KddWyZgrNTdQQiR451ciZo&thelia_feature_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures%2Fupdate%3Ffeature_id%3D_ID_&thelia_feature_creation%5Btitle%5D=Poids&edit_language_id=1&thelia_feature_creation%5Blocale%5D=fr_FR","2017-05-23 13:13:02","2017-05-23 13:13:02"); -INSERT INTO `admin_log` VALUES("154","admin","admin","admin","admin.configuration.feature","2","CREATE","Featureav Poids (ID 2) created","POST /thelia233/web/index.php/admin/configuration/features-av/create HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 438\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=2\nRemote-Ip: 195.81.235.66\nRemote-Port: 36865\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 36865\nX-Remote-Proto: http\n\nthelia_featureav_creation%5Bfeature_id%5D=&thelia_featureav_creation%5B_token%5D=4iQjEOrj0zjqhmXWkuRNYKOqzR79bfIM84lfrH5fbMs&feature_id=2&thelia_featureav_creation%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures%2Fupdate%3Ffeature_id%3D2&thelia_featureav_creation%5Bfeature_id%5D=2&thelia_featureav_creation%5Btitle%5D=Poids&thelia_featureav_creation%5Blocale%5D=fr_FR","2017-05-23 13:13:13","2017-05-23 13:13:13"); -INSERT INTO `admin_log` VALUES("155","admin","admin","admin","admin.configuration.feature","2","UPDATE","Feature Poids (ID 2) modified","POST /thelia233/web/index.php/admin/configuration/features/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 594\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=2\nRemote-Ip: 195.81.235.66\nRemote-Port: 22304\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 22304\nX-Remote-Proto: http\n\nsave_mode=close&thelia_feature_modification%5Bid%5D=2&feature_id=2&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5B_token%5D=_y1w0aYjki1CdmTXewVuHN1SmrdlxTCpOj-bmuVZXRQ&thelia_feature_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5Btitle%5D=Poids&thelia_feature_modification%5Bchapo%5D=&thelia_feature_modification%5Bdescription%5D=&thelia_feature_modification%5Bpostscriptum%5D=&feature_values%5B2%5D=Poids","2017-05-23 13:13:18","2017-05-23 13:13:18"); -INSERT INTO `admin_log` VALUES("156","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 195.81.235.66\nRemote-Port: 31195\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 31195\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=emMMfIZgrZeXEX1SxEmUw1MsOwTwBa0cc1ZzJyocauk&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-23 13:15:37","2017-05-23 13:15:37"); -INSERT INTO `admin_log` VALUES("157","admin","admin","admin","admin.configuration.feature","2","DELETE","Feature (ID 2) deleted","POST /thelia233/web/index.php/admin/configuration/features/delete?_token=a913f7da70b4ad05741f830e93b3c511 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=0\nContent-Length: 12\nContent-Type: application/x-www-form-urlencoded\nCookie: translation_userMode=1; mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features\nRemote-Ip: 195.81.235.66\nRemote-Port: 24397\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 24397\nX-Remote-Proto: http\n\nfeature_id=2","2017-05-23 13:53:05","2017-05-23 13:53:05"); -INSERT INTO `admin_log` VALUES("158","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: translation_userMode=1; mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 195.81.235.66\nRemote-Port: 39885\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 39885\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=emMMfIZgrZeXEX1SxEmUw1MsOwTwBa0cc1ZzJyocauk&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-23 13:53:41","2017-05-23 13:53:41"); -INSERT INTO `admin_log` VALUES("159","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 632\nContent-Type: application/x-www-form-urlencoded\nCookie: translation_userMode=1; mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 195.81.235.66\nRemote-Port: 26662\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 26662\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B4%5D=Poids+%28en+g%29","2017-05-23 13:54:10","2017-05-23 13:54:10"); -INSERT INTO `admin_log` VALUES("160","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la pièce (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 644\nContent-Type: application/x-www-form-urlencoded\nCookie: translation_userMode=1; mediaplanBAK=R129289740; mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 195.81.235.66\nRemote-Port: 14085\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 14085\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=iBKIjhLZGXlAmwiTb_d11IU09E0Euse2zBiCnAww-80&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+pi%C3%A8ce&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=Nombre+de+pi%C3%A8ces","2017-05-23 13:54:21","2017-05-23 13:54:21"); -INSERT INTO `admin_log` VALUES("161","admin","admin","admin","admin.product","2","UPDATE","Product Blettes (ID 2) modified","POST /thelia233/web/index.php/admin/products/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3\nCache-Control: max-age=1814400\nContent-Length: 806\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplan=R2045060519; PHPSESSID=768692753ef456c24711df0d4fec0fc5; thelia_cart=743384c371839620b059d4676ef314c6\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?product_id=2&page=1\nRemote-Ip: 195.81.235.66\nRemote-Port: 27112\nUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 195.81.235.66\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 195.81.235.66\nX-Remote-Port: 27112\nX-Remote-Proto: http\n\npage=1&product_id=2¤t_tab=general&thelia_product_modification%5B_token%5D=Ck0WIRZeb8re5A7C9xyVbffRQ9fORgWMGQHcq1pD89Q&thelia_product_modification%5Bid%5D=2&thelia_product_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fcategories%3Fcategory_id%3D11%26page%3D1&thelia_product_modification%5Blocale%5D=fr_FR&thelia_product_modification%5Bref%5D=Blettes&thelia_product_modification%5Btitle%5D=Blettes&thelia_product_modification%5Bchapo%5D=&thelia_product_modification%5Bdescription%5D=&thelia_product_modification%5Bpostscriptum%5D=&thelia_product_modification%5Bdefault_category%5D=11&thelia_product_modification%5Bvirtual_document_id%5D=-1&thelia_product_modification%5Bbrand_id%5D=0&thelia_product_modification%5Bvisible%5D=1&save_mode=close","2017-05-23 13:59:32","2017-05-23 13:59:32"); -INSERT INTO `admin_log` VALUES("162","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DeA5mIrhtzvU%3DZS0%2F%2BQqylyQ%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D%2F2q7%2B68K4oM%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DBf9Dx4ebl5E%3DXhmUo9SMtSE%3Db38vClgjyWI%3DvU5JgKC6asY%3D000112; PHPSESSID=1b3a94a1c7f44dca0cbaeb77fd4b11f0; XDEBUG_SESSION=PHPSTORM; thelia_cart=f3a2d9b68d2c5a9cd3b2c2ad2873cc96; mediaplan=R2044987556\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 59171\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59171\nX-Remote-Proto: http\n\n","2017-05-27 17:16:19","2017-05-27 17:16:19"); -INSERT INTO `admin_log` VALUES("163","admin","admin","admin","admin.configuration.feature","1","UPDATE","Feature PoidsEtUnite (ID 1) modified","POST /thelia233/web/index.php/admin/configuration/features/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 599\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DeA5mIrhtzvU%3DZS0%2F%2BQqylyQ%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D%2F2q7%2B68K4oM%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DBf9Dx4ebl5E%3DXhmUo9SMtSE%3Db38vClgjyWI%3DvU5JgKC6asY%3D000112; PHPSESSID=1b3a94a1c7f44dca0cbaeb77fd4b11f0; thelia_cart=f3a2d9b68d2c5a9cd3b2c2ad2873cc96; mediaplan=R2044987556\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/features/update?feature_id=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 59836\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 59836\nX-Remote-Proto: http\n\nsave_mode=close&thelia_feature_modification%5Bid%5D=1&feature_id=1&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5B_token%5D=-an_PyQsTkjZtv97ufEEQtTCnEymP1JTiJw3GZBtoww&thelia_feature_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ffeatures&thelia_feature_modification%5Blocale%5D=fr_FR&thelia_feature_modification%5Btitle%5D=PoidsEtUnite&thelia_feature_modification%5Bchapo%5D=&thelia_feature_modification%5Bdescription%5D=&thelia_feature_modification%5Bpostscriptum%5D=&feature_values%5B1%5D=Oui","2017-05-27 17:20:32","2017-05-27 17:20:32"); -INSERT INTO `admin_log` VALUES("164","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DeA5mIrhtzvU%3DZS0%2F%2BQqylyQ%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D%2F2q7%2B68K4oM%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DBf9Dx4ebl5E%3DXhmUo9SMtSE%3Db38vClgjyWI%3DvU5JgKC6asY%3D000112; PHPSESSID=1b3a94a1c7f44dca0cbaeb77fd4b11f0; thelia_cart=7ae6b683f78e78cde2b46c695d8361aa; mediaplanBAK=R129295185; mediaplan=R2044987556\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 53204\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53204\nX-Remote-Proto: http\n\n","2017-05-27 22:29:53","2017-05-27 22:29:53"); -INSERT INTO `admin_log` VALUES("165","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DeA5mIrhtzvU%3DZS0%2F%2BQqylyQ%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3D%2F2q7%2B68K4oM%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DBf9Dx4ebl5E%3DXhmUo9SMtSE%3Db38vClgjyWI%3DvU5JgKC6asY%3D000112; PHPSESSID=1b3a94a1c7f44dca0cbaeb77fd4b11f0; thelia_cart=7ae6b683f78e78cde2b46c695d8361aa; mediaplanBAK=R129295185; mediaplan=R2044987556\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 53266\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 53266\nX-Remote-Proto: http\n\n","2017-05-27 22:29:55","2017-05-27 22:29:55"); -INSERT INTO `admin_log` VALUES("166","","","","admin","","LOGIN","Authentication failure for username \'admin\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 56736\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56736\nX-Remote-Proto: http\n\nthelia_admin_login%5B_token%5D=-lcrLj2roOyMHALbTpQAk-XvklszrQ0QAgfkWnjXpa0&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=admin&thelia_admin_login%5Bpassword%5D=MaCloe02","2017-05-28 09:33:11","2017-05-28 09:33:11"); -INSERT INTO `admin_log` VALUES("167","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 56792\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56792\nX-Remote-Proto: http\n\n","2017-05-28 09:33:50","2017-05-28 09:33:50"); -INSERT INTO `admin_log` VALUES("168","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la pièce (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 638\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 56792\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56792\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=9JPE2--VHVvVUhLptB7ZRvfqhTF5wfn0zu0Mg6-hVvA&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+pi%C3%A8ce&thelia_attribute_modification%5Bchapo%5D=&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=A+la+pi%C3%A8ce","2017-05-28 09:34:15","2017-05-28 09:34:15"); -INSERT INTO `admin_log` VALUES("169","admin","admin","admin","admin.configuration.attribute","5","UPDATE","Attribute A la pièce (ID 5) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 674\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=5\nRemote-Ip: 78.210.220.249\nRemote-Port: 56856\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56856\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=5&attribute_id=5&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=9JPE2--VHVvVUhLptB7ZRvfqhTF5wfn0zu0Mg6-hVvA&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=A+la+pi%C3%A8ce&thelia_attribute_modification%5Bchapo%5D=Articles+vendus+%C3%A0+la+pi%C3%A8ce&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B1%5D=A+la+pi%C3%A8ce","2017-05-28 09:34:42","2017-05-28 09:34:42"); -INSERT INTO `admin_log` VALUES("170","admin","admin","admin","admin.configuration.attribute","6","UPDATE","Attribute Au poids (ID 6) modified","POST /thelia233/web/index.php/admin/configuration/attributes/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 647\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/attributes/update?attribute_id=6\nRemote-Ip: 78.210.220.249\nRemote-Port: 56878\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 56878\nX-Remote-Proto: http\n\nsave_mode=close&thelia_attribute_modification%5Bid%5D=6&attribute_id=6&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5B_token%5D=9JPE2--VHVvVUhLptB7ZRvfqhTF5wfn0zu0Mg6-hVvA&thelia_attribute_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Fattributes&thelia_attribute_modification%5Blocale%5D=fr_FR&thelia_attribute_modification%5Btitle%5D=Au+poids&thelia_attribute_modification%5Bchapo%5D=Artices+vendus+au+poids&thelia_attribute_modification%5Bdescription%5D=&thelia_attribute_modification%5Bpostscriptum%5D=&attribute_values%5B4%5D=Au+poids","2017-05-28 09:35:03","2017-05-28 09:35:03"); -INSERT INTO `admin_log` VALUES("171","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 57999\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 57999\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=EYg04jlQIZWzvso21UEOfRZ5w3EbjdHtAbilNZKVKlQ&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-28 09:52:54","2017-05-28 09:52:54"); -INSERT INTO `admin_log` VALUES("172","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 58167\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58167\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=EYg04jlQIZWzvso21UEOfRZ5w3EbjdHtAbilNZKVKlQ&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-28 09:54:30","2017-05-28 09:54:30"); -INSERT INTO `admin_log` VALUES("173","admin","admin","admin","admin.configuration.template","3","UPDATE","Template Au détail (ID 3) modified","POST /thelia233/web/index.php/admin/configuration/templates/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 402\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/configuration/templates/update?template_id=3\nRemote-Ip: 78.210.220.249\nRemote-Port: 58244\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58244\nX-Remote-Proto: http\n\ntemplate_id=3&save_mode=close&thelia_template_modification%5Bid%5D=3&thelia_template_modification%5B_token%5D=EYg04jlQIZWzvso21UEOfRZ5w3EbjdHtAbilNZKVKlQ&thelia_template_modification%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fconfiguration%2Ftemplates&thelia_template_modification%5Blocale%5D=fr_FR&thelia_template_modification%5Bname%5D=Au+d%C3%A9tail","2017-05-28 09:55:53","2017-05-28 09:55:53"); -INSERT INTO `admin_log` VALUES("174","admin","admin","admin","admin.product","2","CREATE","Combination generation for product reference Blettes","POST /thelia233/web/index.php/admin/product/combination/build HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 966\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?product_id=2&page=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 58416\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58416\nX-Remote-Proto: http\n\nproduct_id=2¤t_tab=prices&thelia_product_combination_generation_form%5B_token%5D=SzHsjn27wa6TBtDmDu2_f5QMA9iHIRn_ITg8nGUOxOw&thelia_product_combination_generation_form%5Bproduct_id%5D=2&thelia_product_combination_generation_form%5Bcurrency%5D=1&thelia_product_combination_generation_form%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D2%26current_tab%3Dprices&thelia_product_combination_generation_form%5Battribute_av%5D%5B0%5D=5%3A1&thelia_product_combination_generation_form%5Battribute_av%5D%5B1%5D=6%3A4&thelia_product_combination_generation_form%5Bprice%5D=0.010000&thelia_product_combination_generation_form%5Breference%5D=Blettes&thelia_product_combination_generation_form%5Bean_code%5D=&thelia_product_combination_generation_form%5Bweight%5D=1&thelia_product_combination_generation_form%5Bquantity%5D=5000&thelia_product_combination_generation_form%5Bsale_price%5D=1.000000","2017-05-28 09:58:00","2017-05-28 09:58:00"); -INSERT INTO `admin_log` VALUES("175","admin","admin","admin","admin.product","2","CREATE","Combination generation for product reference Blettes","POST /thelia233/web/index.php/admin/product/combination/build HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 890\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a775277429fc69cf557914dec6d0af8f; mediaplanBAK=R129289740; thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; mediaplan=R3721199693\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/products/update?category_id=11&product_id=2&folder_id=0&accessory_category_id=0¤t_tab=prices&page=1\nRemote-Ip: 78.210.220.249\nRemote-Port: 58435\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 58435\nX-Remote-Proto: http\n\nproduct_id=2¤t_tab=prices&thelia_product_combination_generation_form%5B_token%5D=SzHsjn27wa6TBtDmDu2_f5QMA9iHIRn_ITg8nGUOxOw&thelia_product_combination_generation_form%5Bproduct_id%5D=2&thelia_product_combination_generation_form%5Bcurrency%5D=1&thelia_product_combination_generation_form%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin%2Fproducts%2Fupdate%3Fproduct_id%3D2%26current_tab%3Dprices&thelia_product_combination_generation_form%5Battribute_av%5D%5B0%5D=5%3A1&thelia_product_combination_generation_form%5Bprice%5D=0.083333&thelia_product_combination_generation_form%5Breference%5D=Blettes&thelia_product_combination_generation_form%5Bean_code%5D=&thelia_product_combination_generation_form%5Bweight%5D=80&thelia_product_combination_generation_form%5Bquantity%5D=0&thelia_product_combination_generation_form%5Bsale_price%5D=0.000000","2017-05-28 09:59:01","2017-05-28 09:59:01"); -INSERT INTO `admin_log` VALUES("176","","","","admin","","LOGIN","Authentication failure for username \'root\'","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 264\nContent-Type: application/x-www-form-urlencoded\nCookie: thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DW67PWx4Vvlk%3DA2thbvpU01s%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DD0dlBm7dVjU%3DCQKKDuEaVBs%3DAFiaJU7j07M%3Dpw025UUiFRg%3DPfurZyy%2BVIk%3Dzlh5G7sCjtg%3Dxcz7G2J3uAA%3D000113; PHPSESSID=5a0ff605d6c00afe9593376b9def28b2; mediaplanBAK=R129289740; mediaplan=R3721101683\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 51064\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51064\nX-Remote-Proto: http\n\nthelia_admin_login%5B_token%5D=7ZYHfKv8v3vxo_YHe5xE1_NGYPJIUy1vgxdeWxc9LeM&thelia_admin_login%5Bsuccess_url%5D=http%3A%2F%2Fwww.boutique-fanny.com%2Fthelia233%2Fweb%2Findex.php%2Fadmin&thelia_admin_login%5Busername%5D=root&thelia_admin_login%5Bpassword%5D=MaCleo02","2017-06-01 22:13:18","2017-06-01 22:13:18"); -INSERT INTO `admin_log` VALUES("177","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: thelia_cart=bfcbb168f71c7257a3ab262a237cb3d6; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3DH3IXx1JbSJY%3DW67PWx4Vvlk%3DA2thbvpU01s%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DD0dlBm7dVjU%3DCQKKDuEaVBs%3DAFiaJU7j07M%3Dpw025UUiFRg%3DPfurZyy%2BVIk%3Dzlh5G7sCjtg%3Dxcz7G2J3uAA%3D000113; PHPSESSID=5a0ff605d6c00afe9593376b9def28b2; mediaplanBAK=R129289740; mediaplan=R3721101683\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/checklogin\nRemote-Ip: 78.210.220.249\nRemote-Port: 51064\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51064\nX-Remote-Proto: http\n\n","2017-06-01 22:13:32","2017-06-01 22:13:32"); -INSERT INTO `admin_log` VALUES("178","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129324588; PHPSESSID=6fd6fa7cc733ae8f9eab6818d3358bf8; mediaplan=R3721101683\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 54724\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 54724\nX-Remote-Proto: http\n\n","2017-06-01 22:31:59","2017-06-01 22:31:59"); -INSERT INTO `admin_log` VALUES("179","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129296274; PHPSESSID=423865e052aa125c8473a5d1e0ec2dcb; mediaplan=R3721101683\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 55681\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55681\nX-Remote-Proto: http\n\n","2017-06-01 22:35:11","2017-06-01 22:35:11"); -INSERT INTO `admin_log` VALUES("180","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 305\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=a97a6971ea23cf79f896e958d3586586; mediaplanBAK=R129289740; mediaplan=R2045162885\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 55432\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 55432\nX-Remote-Proto: http\n\n","2017-06-03 11:29:44","2017-06-03 11:29:44"); -INSERT INTO `admin_log` VALUES("181","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: mediaplanBAK=R129297363; PHPSESSID=e3ce422ac2a6d7c2388967b757bb536c; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3D9sfTXuG5BLE%3DPXRhdRgiHkM%3DNW8zfRjKwbY%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DixQyRVfYKXY%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DICCJWnfMiME%3DPfurZyy%2BVIk%3Dnmryud0P4Vw%3D5LDNIsbufsU%3D000114; mediaplan=R2045162885\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 50923\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 50923\nX-Remote-Proto: http\n\n","2017-06-03 12:35:45","2017-06-03 12:35:45"); -INSERT INTO `admin_log` VALUES("182","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /thelia233/web/index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nContent-Length: 265\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=c393dba56fe897fa61002e84c71ef682; c436ed73d001a4ddbe765e1dcce8e40a=ShnNuOrx55E%3D9sfTXuG5BLE%3DJOwZr843Xtk%3DP7hehkuRBEc%3DeggriWGeVxM%3DCPa%2Fe2DcFao%3D7cGVSAuAk3w%3DTobPGebGFFs%3DyD629%2FWac%2Fg%3DCQKKDuEaVBs%3DAFiaJU7j07M%3DDdt4g8WhOv8%3DN9xm530GK0E%3DQupqxbDDxYQ%3DvU5JgKC6asY%3D000112; mediaplanBAK=R129289740; mediaplan=R2045162885\nDnt: 1\nHost: www.boutique-fanny.com\nMod-Rewrite: On\nOrigin: http://www.boutique-fanny.com\nReferer: http://www.boutique-fanny.com/thelia233/web/index.php/admin/login\nRemote-Ip: 78.210.220.249\nRemote-Port: 51635\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Cdn-Any-Ip: 213.186.33.17\nX-Forwarded-For: 78.210.220.249\nX-Forwarded-Port: 80\nX-Forwarded-Proto: http\nX-Php-Ob-Level: 1\nX-Remote-Ip: 78.210.220.249\nX-Remote-Port: 51635\nX-Remote-Proto: http\n\n","2017-06-03 14:40:34","2017-06-03 14:40:34"); -INSERT INTO `admin_log` VALUES("183","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 241\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 08:55:50","2017-06-04 08:55:50"); -INSERT INTO `admin_log` VALUES("184","admin","admin","admin","admin.configuration.language","2","UPDATE","Lang English (ID 2) modified","GET /index.php/admin/configuration/languages/toggleDefault/2?_token=13f8a7b0b904ad6c7720fcedaa4bea9c HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages/toggleActive/1?_token=bf3de3344e7d843d713faaf4dec66d1b\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:02:43","2017-06-04 10:02:43"); -INSERT INTO `admin_log` VALUES("185","admin","admin","admin","admin.configuration.language","1","UPDATE","Lang Français (ID 1) modified","GET /index.php/admin/configuration/languages/toggleActive/1?_token=779f9b43ac9fd07bce6ede07766d1fda HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:02:47","2017-06-04 10:02:47"); -INSERT INTO `admin_log` VALUES("186","admin","admin","admin","admin.configuration.language","1","UPDATE","Lang Français (ID 1) modified","GET /index.php/admin/configuration/languages/toggleVisible/1?_token=6d3cb53dbc5fd372c794684f799b1e06 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:05:11","2017-06-04 10:05:11"); -INSERT INTO `admin_log` VALUES("187","admin","admin","admin","admin.configuration.language","3","UPDATE","Lang Castellano (ID 3) modified","GET /index.php/admin/configuration/languages/toggleVisible/3?_token=45333a5aa856b9b9787448dae4a7581c HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:05:17","2017-06-04 10:05:17"); -INSERT INTO `admin_log` VALUES("188","admin","admin","admin","admin.configuration.language","1","UPDATE","Lang Français (ID 1) modified","GET /index.php/admin/configuration/languages/toggleDefault/1?_token=30d586dee075e087ac4cee21a9e482bb HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:05:21","2017-06-04 10:05:21"); -INSERT INTO `admin_log` VALUES("189","admin","admin","admin","admin.configuration.language","2","UPDATE","Lang English (ID 2) modified","GET /index.php/admin/configuration/languages/toggleActive/2?_token=e542211d56c1b543637818e98d5c246c HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:05:36","2017-06-04 10:05:36"); -INSERT INTO `admin_log` VALUES("190","admin","admin","admin","admin.configuration.language","3","UPDATE","Lang Castellano (ID 3) modified","GET /index.php/admin/configuration/languages/toggleVisible/3?_token=7e3c4d864f80b9e4bf19f0511aeeefc3 HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: translation_userMode=1; PHPSESSID=dbe86e20788cb1673b70f94047f23ec6\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:06:02","2017-06-04 10:06:02"); -INSERT INTO `admin_log` VALUES("191","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 281\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=605703975825c564cca81fbf44e2c8a2; thelia_cart=45b88c7a0d5a87d4a605eddec1b80b31\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 10:41:43","2017-06-04 10:41:43"); -INSERT INTO `admin_log` VALUES("192","admin","admin","admin","admin.module","32","UPDATE","Module Fonctionnalités spécifiques Céline (ID 32) modified","POST /index.php/admin/module/save HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 584\nContent-Type: application/x-www-form-urlencoded\nCookie: PHPSESSID=605703975825c564cca81fbf44e2c8a2; armcn=YWRtaW4ANTkzM2UzZTcxZDkwOQA1OGI1YjFhNmE0ZjIw; thelia_cart=e3a4b60beec2af98acfac013f3547112\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index.php/admin/module/update/32\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\nsave_mode=close&module_id=32¤t_tab=general&thelia_admin_module_modification%5Blocale%5D=fr_FR&thelia_admin_module_modification%5Bid%5D=32&thelia_admin_module_modification%5B_token%5D=qlKUiTHnIyEKQnx34AwYPjqgNlGzrl_lLBmJx3G1n_k&thelia_admin_module_modification%5Bsuccess_url%5D=http%3A%2F%2Flocalhost%3A8001%2Findex.php%2Fadmin%2Fmodules&thelia_admin_module_modification%5Btitle%5D=Fonctionnalit%C3%A9s+sp%C3%A9cifiques+C%C3%A9line&thelia_admin_module_modification%5Bchapo%5D=&thelia_admin_module_modification%5Bdescription%5D=&thelia_admin_module_modification%5Bpostscriptum%5D=","2017-06-04 13:36:15","2017-06-04 13:36:15"); -INSERT INTO `admin_log` VALUES("193","admin","admin","admin","admin","","LOGIN","Authentication successful","GET /index_dev.php HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Encoding: gzip, deflate, sdch, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nCookie: armcn=YWRtaW4ANTkzM2UzZTcxZDkwOQA1OGI1YjFhNmE0ZjIw; thelia_cart=e3a4b60beec2af98acfac013f3547112; XDEBUG_SESSION=PHPSTORM\nDnt: 1\nHost: localhost:8001\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-04 13:53:54","2017-06-04 13:53:54"); -INSERT INTO `admin_log` VALUES("194","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 241\nContent-Type: application/x-www-form-urlencoded\nCookie: XDEBUG_SESSION=PHPSTORM; PHPSESSID=72a3924fe262d3f56c09ef1c0c5e0827; thelia_cart=be9330b10747af92fc6517ca1675ee45\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-15 13:13:27","2017-06-15 13:13:27"); -INSERT INTO `admin_log` VALUES("195","admin","admin","admin","admin.configuration.language","3","UPDATE","Lang Castellano (ID 3) modified","GET /index_dev.php/admin/configuration/languages/toggleActive/3?_token=8a12d224d401d52082dd4e351b2c34ad HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nConnection: keep-alive\nCookie: PHPSESSID=72a3924fe262d3f56c09ef1c0c5e0827; thelia_cart=be9330b10747af92fc6517ca1675ee45\nDnt: 1\nHost: localhost:8001\nReferer: http://localhost:8001/index_dev.php/admin/configuration/languages\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-15 13:50:12","2017-06-15 13:50:12"); -INSERT INTO `admin_log` VALUES("196","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index_dev.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 245\nContent-Type: application/x-www-form-urlencoded\nCookie: XDEBUG_SESSION=PHPSTORM; PHPSESSID=a129e1416532017d50aa8aa786189774; thelia_cart=040698d3e58003c006a32ce7209f7510\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index_dev.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.109 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-22 21:42:38","2017-06-22 21:42:38"); -INSERT INTO `admin_log` VALUES("197","admin","admin","admin","admin","","LOGIN","Authentication successful","POST /index_dev.php/admin/checklogin HTTP/1.1\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\nAccept-Encoding: gzip, deflate, br\nAccept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4,la;q=0.2\nCache-Control: max-age=0\nConnection: keep-alive\nContent-Length: 245\nContent-Type: application/x-www-form-urlencoded\nCookie: XDEBUG_SESSION=PHPSTORM; PHPSESSID=6574b66026d19b1b9760d0bb2799d04c; thelia_cart=173bcb6360d2e3797f73aa0dea110d9b\nDnt: 1\nHost: localhost:8001\nOrigin: http://localhost:8001\nReferer: http://localhost:8001/index_dev.php/admin/login\nUpgrade-Insecure-Requests: 1\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36\nX-Php-Ob-Level: 0\n\n","2017-06-27 19:58:01","2017-06-27 19:58:01"); - - - -DROP TABLE `api`; - -CREATE TABLE `api` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `label` varchar(255) DEFAULT NULL, - `api_key` varchar(100) DEFAULT NULL, - `profile_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_api_profile_id` (`profile_id`), - CONSTRAINT `fk_api_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `profile` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `area`; - -CREATE TABLE `area` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(100) NOT NULL, - `postage` float DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; - -INSERT INTO `area` VALUES("1","France","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("2","A Zone","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("3","B Zone","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("4","C Zone","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("5","France OM1","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("6","France OM2","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("7","Europe","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("8","North America","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("9","Asia","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("10","Africa","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("11","Oceania","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("12","South America","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("13","Europe (non-EU)","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("14","Central America/Antilla","","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area` VALUES("15","Autour de Muret","","2017-03-02 15:51:29","2017-03-02 15:51:29"); - - - -DROP TABLE `area_delivery_module`; - -CREATE TABLE `area_delivery_module` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `area_id` int(11) NOT NULL, - `delivery_module_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `area_id_delivery_module_id_UNIQUE` (`area_id`,`delivery_module_id`), - KEY `idx_area_delivery_module_area_id` (`area_id`), - KEY `idx_area_delivery_module_delivery_module_id_idx` (`delivery_module_id`), - CONSTRAINT `fk_area_delivery_module_area_id` FOREIGN KEY (`area_id`) REFERENCES `area` (`id`) ON DELETE CASCADE, - CONSTRAINT `idx_area_delivery_module_delivery_module_id` FOREIGN KEY (`delivery_module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; - -INSERT INTO `area_delivery_module` VALUES("1","1","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `area_delivery_module` VALUES("9","15","26","2017-03-02 15:52:59","2017-03-02 15:52:59"); -INSERT INTO `area_delivery_module` VALUES("10","15","27","2017-03-02 15:53:18","2017-03-02 15:53:18"); -INSERT INTO `area_delivery_module` VALUES("11","1","28","2017-03-02 15:53:32","2017-03-02 15:53:32"); - - - -DROP TABLE `atos_currency`; - -CREATE TABLE `atos_currency` ( - `code` varchar(128) NOT NULL, - `atos_code` int(11) DEFAULT NULL, - `decimals` int(11) DEFAULT NULL, - PRIMARY KEY (`code`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `atos_currency` VALUES("ARS","32","2"); -INSERT INTO `atos_currency` VALUES("AUD","36","2"); -INSERT INTO `atos_currency` VALUES("BRL","986","2"); -INSERT INTO `atos_currency` VALUES("CAD","124","2"); -INSERT INTO `atos_currency` VALUES("CHF","756","2"); -INSERT INTO `atos_currency` VALUES("DKK","208","2"); -INSERT INTO `atos_currency` VALUES("EUR","978","2"); -INSERT INTO `atos_currency` VALUES("GBP","826","2"); -INSERT INTO `atos_currency` VALUES("JPY","392","0"); -INSERT INTO `atos_currency` VALUES("KHR","116","2"); -INSERT INTO `atos_currency` VALUES("KRW","410","0"); -INSERT INTO `atos_currency` VALUES("MXN","484","2"); -INSERT INTO `atos_currency` VALUES("NOK","578","2"); -INSERT INTO `atos_currency` VALUES("NZD","554","2"); -INSERT INTO `atos_currency` VALUES("SEK","752","2"); -INSERT INTO `atos_currency` VALUES("SGD","702","2"); -INSERT INTO `atos_currency` VALUES("TRY","949","2"); -INSERT INTO `atos_currency` VALUES("TWD","901","2"); -INSERT INTO `atos_currency` VALUES("USD","840","2"); -INSERT INTO `atos_currency` VALUES("XAF","952","2"); -INSERT INTO `atos_currency` VALUES("XPF","953","2"); - - - -DROP TABLE `attribute`; - -CREATE TABLE `attribute` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; - -INSERT INTO `attribute` VALUES("1","1","2017-02-28 18:24:13","2017-03-02 14:02:02"); -INSERT INTO `attribute` VALUES("2","2","2017-02-28 18:24:36","2017-03-02 14:01:52"); -INSERT INTO `attribute` VALUES("3","3","2017-03-02 14:01:20","2017-03-02 14:01:20"); -INSERT INTO `attribute` VALUES("4","4","2017-03-02 14:01:38","2017-03-02 14:01:38"); -INSERT INTO `attribute` VALUES("5","5","2017-05-23 12:42:29","2017-05-28 09:34:42"); -INSERT INTO `attribute` VALUES("6","6","2017-05-23 12:42:45","2017-05-28 09:35:03"); - - - -DROP TABLE `attribute_av`; - -CREATE TABLE `attribute_av` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `attribute_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_attribute_av_attribute_id` (`attribute_id`), - CONSTRAINT `fk_attribute_av_attribute_id` FOREIGN KEY (`attribute_id`) REFERENCES `attribute` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_av` VALUES("1","5","1","2017-05-23 12:48:16","2017-05-28 09:34:15"); -INSERT INTO `attribute_av` VALUES("4","6","1","2017-05-23 12:48:55","2017-05-28 09:35:03"); - - - -DROP TABLE `attribute_av_i18n`; - -CREATE TABLE `attribute_av_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `attribute_av_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `attribute_av` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_av_i18n` VALUES("1","fr_FR","A la pièce","","",""); -INSERT INTO `attribute_av_i18n` VALUES("4","fr_FR","Au poids","","",""); - - - -DROP TABLE `attribute_combination`; - -CREATE TABLE `attribute_combination` ( - `attribute_id` int(11) NOT NULL, - `attribute_av_id` int(11) NOT NULL, - `product_sale_elements_id` int(11) NOT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`attribute_id`,`attribute_av_id`,`product_sale_elements_id`), - KEY `idx_attribute_combination_attribute_id` (`attribute_id`), - KEY `idx_attribute_combination_attribute_av_id` (`attribute_av_id`), - KEY `idx_attribute_combination_product_sale_elements_id` (`product_sale_elements_id`), - CONSTRAINT `fk_attribute_combination_attribute_av_id` FOREIGN KEY (`attribute_av_id`) REFERENCES `attribute_av` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_attribute_combination_attribute_id` FOREIGN KEY (`attribute_id`) REFERENCES `attribute` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_attribute_combination_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_combination` VALUES("5","1","6","","2017-05-28 09:59:01","2017-05-28 09:59:01"); -INSERT INTO `attribute_combination` VALUES("6","4","7","","2017-05-28 09:59:40","2017-05-28 09:59:40"); - - - -DROP TABLE `attribute_i18n`; - -CREATE TABLE `attribute_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `attribute_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `attribute` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_i18n` VALUES("1","fr_FR","106ml","","",""); -INSERT INTO `attribute_i18n` VALUES("2","fr_FR","228ml","","",""); -INSERT INTO `attribute_i18n` VALUES("3","fr_FR","385ml","","",""); -INSERT INTO `attribute_i18n` VALUES("4","fr_FR","750ml","","",""); -INSERT INTO `attribute_i18n` VALUES("5","fr_FR","A la pièce","","Articles vendus à la pièce",""); -INSERT INTO `attribute_i18n` VALUES("6","fr_FR","Au poids","","Artices vendus au poids",""); - - - -DROP TABLE `attribute_template`; - -CREATE TABLE `attribute_template` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `attribute_id` int(11) NOT NULL, - `template_id` int(11) NOT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_attribute_template_id` (`attribute_id`), - KEY `fk_attribute_template_idx` (`template_id`), - CONSTRAINT `fk_attribute_template` FOREIGN KEY (`template_id`) REFERENCES `template` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_attribute_template_id` FOREIGN KEY (`attribute_id`) REFERENCES `attribute` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; - -INSERT INTO `attribute_template` VALUES("2","2","1","2","2017-03-01 16:05:40","2017-03-01 16:05:40"); -INSERT INTO `attribute_template` VALUES("6","5","3","1","2017-05-23 12:44:27","2017-05-23 12:44:27"); -INSERT INTO `attribute_template` VALUES("7","6","3","2","2017-05-23 12:44:33","2017-05-23 12:44:33"); - - - -DROP TABLE `brand`; - -CREATE TABLE `brand` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `logo_image_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `fk_brand_brand_image_idx` (`logo_image_id`), - CONSTRAINT `fk_logo_image_id_brand_image` FOREIGN KEY (`logo_image_id`) REFERENCES `brand_image` (`id`) ON DELETE SET NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_document`; - -CREATE TABLE `brand_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `brand_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_brand_document_brand_id` (`brand_id`), - CONSTRAINT `fk_brand_document_brand_id` FOREIGN KEY (`brand_id`) REFERENCES `brand` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_document_i18n`; - -CREATE TABLE `brand_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `brand_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `brand_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_i18n`; - -CREATE TABLE `brand_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `brand_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `brand` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_image`; - -CREATE TABLE `brand_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `brand_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_brand_image_brand_id` (`brand_id`), - CONSTRAINT `fk_brand_image_brand_id` FOREIGN KEY (`brand_id`) REFERENCES `brand` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `brand_image_i18n`; - -CREATE TABLE `brand_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `brand_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `brand_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `carousel`; - -CREATE TABLE `carousel` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `file` varchar(255) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `url` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `carousel` VALUES("1","banniere_chutney_figue-1.jpg","","","2017-02-28 18:29:18","2017-02-28 18:29:18"); -INSERT INTO `carousel` VALUES("2","banniere_5x106-2.jpg","","","2017-02-28 18:46:30","2017-02-28 18:46:30"); - - - -DROP TABLE `carousel_i18n`; - -CREATE TABLE `carousel_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `alt` varchar(255) DEFAULT NULL, - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `carousel_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `carousel` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `carousel_i18n` VALUES("1","cs_CZ","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","de_DE","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","en_US","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","es_ES","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","fr_FR","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","it_IT","","","","",""); -INSERT INTO `carousel_i18n` VALUES("1","ru_RU","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","cs_CZ","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","de_DE","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","en_US","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","es_ES","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","fr_FR","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","it_IT","","","","",""); -INSERT INTO `carousel_i18n` VALUES("2","ru_RU","","","","",""); - - - -DROP TABLE `cart`; - -CREATE TABLE `cart` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `token` varchar(255) DEFAULT NULL, - `customer_id` int(11) DEFAULT NULL, - `address_delivery_id` int(11) DEFAULT NULL, - `address_invoice_id` int(11) DEFAULT NULL, - `currency_id` int(11) DEFAULT NULL, - `discount` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `token_UNIQUE` (`token`), - KEY `idx_cart_customer_id` (`customer_id`), - KEY `idx_cart_address_delivery_id` (`address_delivery_id`), - KEY `idx_cart_address_invoice_id` (`address_invoice_id`), - KEY `idx_cart_currency_id` (`currency_id`), - CONSTRAINT `fk_cart_address_delivery_id` FOREIGN KEY (`address_delivery_id`) REFERENCES `address` (`id`), - CONSTRAINT `fk_cart_address_invoice_id` FOREIGN KEY (`address_invoice_id`) REFERENCES `address` (`id`), - CONSTRAINT `fk_cart_currency_id` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_cart_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8; - -INSERT INTO `cart` VALUES("2","ce333c94f76634ff2557ec7b38ee96d7","33","","","1","0.000000","2017-05-11 23:01:43","2017-05-11 23:01:43"); -INSERT INTO `cart` VALUES("3","743384c371839620b059d4676ef314c6","","","","1","0.000000","2017-05-23 13:11:19","2017-05-23 14:16:00"); -INSERT INTO `cart` VALUES("6","7ae6b683f78e78cde2b46c695d8361aa","","","","1","0.000000","2017-05-27 19:49:16","2017-05-27 19:49:16"); -INSERT INTO `cart` VALUES("7","bfcbb168f71c7257a3ab262a237cb3d6","","","","1","0.000000","2017-05-28 09:53:39","2017-05-28 10:03:55"); -INSERT INTO `cart` VALUES("10","94b29ed6be69db7d88f09a553aea0f2a","","","","1","0.000000","2017-06-04 13:53:54","2017-06-04 13:53:54"); -INSERT INTO `cart` VALUES("34","b289e16177d34024bae28a33ede82e22","33","","","1","0.000000","2017-06-27 20:00:35","2017-06-27 20:01:28"); - - - -DROP TABLE `cart_item`; - -CREATE TABLE `cart_item` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `cart_id` int(11) NOT NULL, - `product_id` int(11) NOT NULL, - `quantity` float DEFAULT '1', - `product_sale_elements_id` int(11) NOT NULL, - `price` decimal(16,6) DEFAULT '0.000000', - `promo_price` decimal(16,6) DEFAULT '0.000000', - `price_end_of_life` datetime DEFAULT NULL, - `promo` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_cart_item_cart_id` (`cart_id`), - KEY `idx_cart_item_product_id` (`product_id`), - KEY `idx_cart_item_product_sale_elements_id` (`product_sale_elements_id`), - CONSTRAINT `fk_cart_item_cart_id` FOREIGN KEY (`cart_id`) REFERENCES `cart` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_cart_item_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_cart_item_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8; - -INSERT INTO `cart_item` VALUES("2","2","1","1","1","4.166667","4.166667","","0","2017-05-11 23:01:43","2017-05-11 23:01:43"); -INSERT INTO `cart_item` VALUES("8","10","2","10","6","0.083333","0.000000","","0","2017-06-04 13:53:54","2017-06-04 13:53:54"); -INSERT INTO `cart_item` VALUES("9","10","2","300","7","0.010000","0.000000","","0","2017-06-04 13:53:54","2017-06-04 13:53:54"); -INSERT INTO `cart_item` VALUES("50","34","2","300","7","0.010000","0.000000","","0","2017-06-27 20:00:35","2017-06-27 20:00:35"); -INSERT INTO `cart_item` VALUES("51","34","2","1","6","0.083333","0.000000","","0","2017-06-27 20:00:35","2017-06-27 20:00:35"); - - - -DROP TABLE `category`; - -CREATE TABLE `category` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `parent` int(11) NOT NULL DEFAULT '0', - `visible` tinyint(4) NOT NULL, - `position` int(11) NOT NULL, - `default_template_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_parent` (`parent`), - KEY `idx_parent_position` (`parent`,`position`) -) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8; - -INSERT INTO `category` VALUES("1","0","1","1","1","2017-02-28 18:48:43","2017-03-01 16:06:11","2","2017-03-01 16:06:11",""); -INSERT INTO `category` VALUES("2","0","1","2","1","2017-03-01 12:46:30","2017-03-01 16:06:32","2","2017-03-01 16:06:32",""); -INSERT INTO `category` VALUES("3","0","1","3","1","2017-03-01 12:46:47","2017-03-01 16:06:39","2","2017-03-01 16:06:39",""); -INSERT INTO `category` VALUES("4","0","1","5","2","2017-03-01 12:46:56","2017-03-01 16:07:33","3","2017-03-01 16:07:33",""); -INSERT INTO `category` VALUES("5","0","1","4","1","2017-03-01 12:47:12","2017-03-01 16:06:45","3","2017-03-01 16:06:45",""); -INSERT INTO `category` VALUES("6","1","1","1","1","2017-03-01 16:03:45","2017-03-01 16:07:42","2","2017-03-01 16:07:42",""); -INSERT INTO `category` VALUES("7","1","1","2","1","2017-03-01 16:07:52","2017-03-01 16:07:57","2","2017-03-01 16:07:57",""); -INSERT INTO `category` VALUES("8","1","1","3","1","2017-03-01 16:08:15","2017-03-01 16:08:19","2","2017-03-01 16:08:19",""); -INSERT INTO `category` VALUES("9","1","1","4","1","2017-03-01 16:08:27","2017-03-01 16:08:31","2","2017-03-01 16:08:31",""); -INSERT INTO `category` VALUES("10","1","1","5","1","2017-03-01 16:08:40","2017-03-01 16:08:45","2","2017-03-01 16:08:45",""); -INSERT INTO `category` VALUES("11","0","1","6","3","2017-05-23 12:44:55","2017-06-04 09:23:41","4","2017-06-04 09:23:41",""); - - - -DROP TABLE `category_associated_content`; - -CREATE TABLE `category_associated_content` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `category_id` int(11) NOT NULL, - `content_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_category_associated_content_category_id` (`category_id`), - KEY `idx_category_associated_content_content_id` (`content_id`), - CONSTRAINT `fk_category_associated_content_category_id` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_category_associated_content_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_document`; - -CREATE TABLE `category_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `category_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_category_document_category_id` (`category_id`), - CONSTRAINT `fk_catgory_document_category_id` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_document_i18n`; - -CREATE TABLE `category_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `category_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `category_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_i18n`; - -CREATE TABLE `category_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `category_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `category_i18n` VALUES("1","fr_FR","Nos confitures","De délicieuses confitures maison à base de fruits frais et garanties sans conservateur.","De délicieuses confitures maison","","Confitures maison","De délicieuses confitures maison",""); -INSERT INTO `category_i18n` VALUES("2","fr_FR","Nos salés","","","","","",""); -INSERT INTO `category_i18n` VALUES("3","fr_FR","Nos crèmes et gelées","","","","","",""); -INSERT INTO `category_i18n` VALUES("4","fr_FR","Nos coffrets","","","","","",""); -INSERT INTO `category_i18n` VALUES("5","fr_FR","Nos préparations","","","","","",""); -INSERT INTO `category_i18n` VALUES("6","fr_FR","Fruits exotiques","","","","","",""); -INSERT INTO `category_i18n` VALUES("7","fr_FR","Fruits rouges","","","","","",""); -INSERT INTO `category_i18n` VALUES("8","fr_FR","Agrumes","","","","","",""); -INSERT INTO `category_i18n` VALUES("9","fr_FR","Fruits à noyaux","","","","","",""); -INSERT INTO `category_i18n` VALUES("10","fr_FR","Fruits à pépins","","","","","",""); -INSERT INTO `category_i18n` VALUES("11","fr_FR","Légumes","","","","","",""); - - - -DROP TABLE `category_image`; - -CREATE TABLE `category_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `category_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_category_image_category_id` (`category_id`), - KEY `idx_category_image_category_id_position` (`category_id`,`position`), - CONSTRAINT `fk_category_image_category_id` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_image_i18n`; - -CREATE TABLE `category_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `category_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `category_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `category_version`; - -CREATE TABLE `category_version` ( - `id` int(11) NOT NULL, - `parent` int(11) NOT NULL DEFAULT '0', - `visible` tinyint(4) NOT NULL, - `position` int(11) NOT NULL, - `default_template_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `category_version_FK_1` FOREIGN KEY (`id`) REFERENCES `category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `category_version` VALUES("1","0","1","1","","2017-02-28 18:48:43","2017-02-28 18:48:43","1","2017-02-28 18:48:43",""); -INSERT INTO `category_version` VALUES("1","0","1","1","1","2017-02-28 18:48:43","2017-03-01 16:06:11","2","2017-03-01 16:06:11",""); -INSERT INTO `category_version` VALUES("2","0","1","2","","2017-03-01 12:46:30","2017-03-01 12:46:30","1","2017-03-01 12:46:30",""); -INSERT INTO `category_version` VALUES("2","0","1","2","1","2017-03-01 12:46:30","2017-03-01 16:06:32","2","2017-03-01 16:06:32",""); -INSERT INTO `category_version` VALUES("3","0","1","3","","2017-03-01 12:46:47","2017-03-01 12:46:47","1","2017-03-01 12:46:47",""); -INSERT INTO `category_version` VALUES("3","0","1","3","1","2017-03-01 12:46:47","2017-03-01 16:06:39","2","2017-03-01 16:06:39",""); -INSERT INTO `category_version` VALUES("4","0","1","4","","2017-03-01 12:46:56","2017-03-01 12:46:56","1","2017-03-01 12:46:56",""); -INSERT INTO `category_version` VALUES("4","0","1","5","","2017-03-01 12:46:56","2017-03-01 12:47:29","2","2017-03-01 12:47:29",""); -INSERT INTO `category_version` VALUES("4","0","1","5","2","2017-03-01 12:46:56","2017-03-01 16:07:33","3","2017-03-01 16:07:33",""); -INSERT INTO `category_version` VALUES("5","0","1","5","","2017-03-01 12:47:12","2017-03-01 12:47:12","1","2017-03-01 12:47:12",""); -INSERT INTO `category_version` VALUES("5","0","1","4","","2017-03-01 12:47:12","2017-03-01 12:47:29","2","2017-03-01 12:47:29",""); -INSERT INTO `category_version` VALUES("5","0","1","4","1","2017-03-01 12:47:12","2017-03-01 16:06:45","3","2017-03-01 16:06:45",""); -INSERT INTO `category_version` VALUES("6","1","1","1","","2017-03-01 16:03:45","2017-03-01 16:03:45","1","2017-03-01 16:03:45",""); -INSERT INTO `category_version` VALUES("6","1","1","1","1","2017-03-01 16:03:45","2017-03-01 16:07:42","2","2017-03-01 16:07:42",""); -INSERT INTO `category_version` VALUES("7","1","1","2","","2017-03-01 16:07:52","2017-03-01 16:07:52","1","2017-03-01 16:07:52",""); -INSERT INTO `category_version` VALUES("7","1","1","2","1","2017-03-01 16:07:52","2017-03-01 16:07:57","2","2017-03-01 16:07:57",""); -INSERT INTO `category_version` VALUES("8","1","1","3","","2017-03-01 16:08:15","2017-03-01 16:08:15","1","2017-03-01 16:08:15",""); -INSERT INTO `category_version` VALUES("8","1","1","3","1","2017-03-01 16:08:15","2017-03-01 16:08:19","2","2017-03-01 16:08:19",""); -INSERT INTO `category_version` VALUES("9","1","1","4","","2017-03-01 16:08:27","2017-03-01 16:08:27","1","2017-03-01 16:08:27",""); -INSERT INTO `category_version` VALUES("9","1","1","4","1","2017-03-01 16:08:27","2017-03-01 16:08:31","2","2017-03-01 16:08:31",""); -INSERT INTO `category_version` VALUES("10","1","1","5","","2017-03-01 16:08:40","2017-03-01 16:08:40","1","2017-03-01 16:08:40",""); -INSERT INTO `category_version` VALUES("10","1","1","5","1","2017-03-01 16:08:40","2017-03-01 16:08:45","2","2017-03-01 16:08:45",""); -INSERT INTO `category_version` VALUES("11","0","1","6","","2017-05-23 12:44:55","2017-05-23 12:44:55","1","2017-05-23 12:44:55",""); -INSERT INTO `category_version` VALUES("11","0","1","6","3","2017-05-23 12:44:55","2017-05-23 12:45:13","2","2017-05-23 12:45:13",""); -INSERT INTO `category_version` VALUES("11","0","0","6","3","2017-05-23 12:44:55","2017-06-04 09:20:13","3","2017-06-04 09:20:13",""); -INSERT INTO `category_version` VALUES("11","0","1","6","3","2017-05-23 12:44:55","2017-06-04 09:23:41","4","2017-06-04 09:23:41",""); - - - -DROP TABLE `config`; - -CREATE TABLE `config` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `value` text NOT NULL, - `secured` tinyint(4) NOT NULL DEFAULT '1', - `hidden` tinyint(4) NOT NULL DEFAULT '1', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=85 DEFAULT CHARSET=utf8; - -INSERT INTO `config` VALUES("1","check-available-stock","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("2","active-front-template","BoutiqueFanny","0","0","2017-02-28 18:20:10","2017-03-02 12:27:27"); -INSERT INTO `config` VALUES("3","active-admin-template","default","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("4","active-pdf-template","BoutiqueFanny","0","0","2017-02-28 18:20:10","2017-03-02 11:55:03"); -INSERT INTO `config` VALUES("5","active-mail-template","BoutiqueFanny","0","0","2017-02-28 18:20:10","2017-03-02 11:55:03"); -INSERT INTO `config` VALUES("6","rewriting_enable","1","0","0","2017-02-28 18:20:10","2017-05-23 12:57:10"); -INSERT INTO `config` VALUES("7","imagine_graphic_driver","gd","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("8","default_images_quality_percent","75","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("9","original_image_delivery_mode","symlink","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("10","original_document_delivery_mode","symlink","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("11","images_library_path","local/media/images","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("12","documents_library_path","local/media/documents","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("13","image_cache_dir_from_web_root","cache/images","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("14","document_cache_dir_from_web_root","cache/documents","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("15","page_not_found_view","404.html","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("16","obsolete_rewriten_url_view","obsolete-rewritten-url","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("17","use_tax_free_amounts","0","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("18","process_assets","1","0","0","2017-02-28 18:20:10","2017-06-03 12:42:01"); -INSERT INTO `config` VALUES("19","thelia_admin_remember_me_cookie_name","tarmcn","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("20","thelia_admin_remember_me_cookie_expiration","2592000","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("21","thelia_customer_remember_me_cookie_name","boutiquefanny","0","0","2017-02-28 18:20:10","2017-03-02 11:55:04"); -INSERT INTO `config` VALUES("22","thelia_customer_remember_me_cookie_expiration","31536000","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("23","url_site","http://www.boutique-fanny.com/thelia233/web","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("24","pdf_invoice_file","invoice","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("25","pdf_delivery_file","delivery","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("26","unknown-flag-path","assets/img/flags/unknown.png","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("27","html_output_trim_level","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("28","default_available_stock","100","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("29","information_folder_id","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("30","terms_conditions_content_id","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("31","allow_negative_stock","0","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("32","cart.use_persistent_cookie","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("33","cart.cookie_name","thelia_cart","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("34","cart.cookie_lifetime","31536060","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("35","session_config.lifetime","0","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("36","session_config.default","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("37","default_lang_without_translation","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("38","store_name","La boutique de Fanny","0","1","2017-02-28 18:20:10","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("39","store_description","Confitures artisanales, préparations en bocaux","0","1","2017-02-28 18:20:10","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("40","store_email","boutiquefanny@free.fr","0","1","2017-02-28 18:20:10","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("41","store_notification_emails","boutiquefanny@free.fr","0","1","2017-02-28 18:20:10","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("42","one_domain_foreach_lang","0","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("43","thelia_version","2.3.3","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("44","thelia_major_version","2","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("45","thelia_minus_version","3","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("46","thelia_release_version","3","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("47","thelia_extra_version","","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("48","front_cart_country_cookie_name","fcccn","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("49","front_cart_country_cookie_expires","2592000","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("50","sitemap_ttl","7200","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("51","feed_ttl","7200","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("52","form_firewall_bruteforce_time_to_wait","10","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("53","form_firewall_time_to_wait","60","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("54","form_firewall_bruteforce_attempts","10","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("55","form_firewall_attempts","6","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("56","form_firewall_active","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("57","allow_slash_ended_uri","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("58","error_message.show","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("59","error_message.page_name","error.html","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("60","customer_change_email","0","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("61","customer_confirm_email","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("62","form.secret","8c42ef09e61010b83d1f1e5ef2e1ea68","0","0","2017-02-28 18:20:10","2017-02-28 18:21:43"); -INSERT INTO `config` VALUES("63","minimum_admin_password_length","4","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("64","enable_lost_admin_password_recovery","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("65","notify_newsletter_subscription","1","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("66","number_default_results_per_page.product_list","20","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("67","number_default_results_per_page.order_list","20","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("68","number_default_results_per_page.customer_list","20","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `config` VALUES("69","store_business_id","SIRET : 79746708100023","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("70","store_phone","","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("71","store_fax","","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("72","store_address1","26 chemin de Marragon","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("73","store_address2","","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("74","store_address3","","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("75","store_zipcode","31600","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("76","store_city","MURET","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("77","store_country","64","0","1","2017-03-02 11:49:44","2017-03-02 11:49:44"); -INSERT INTO `config` VALUES("78","hooksocial_twitter","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("79","hooksocial_facebook","boutiquedefanny","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("80","hooksocial_google","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("81","hooksocial_instagram","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("82","hooksocial_pinterest","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("83","hooksocial_youtube","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); -INSERT INTO `config` VALUES("84","hooksocial_rss","","0","1","2017-05-12 00:01:12","2017-05-12 00:01:12"); - - - -DROP TABLE `config_i18n`; - -CREATE TABLE `config_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `config_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `config` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `config_i18n` VALUES("1","de_DE","Verfügbaren Lagerbestand prüfen (1) oder ignorieren (0) beim Anzeigen und Änderung der bestellte Menge","","",""); -INSERT INTO `config_i18n` VALUES("1","en_US","Check available product stock (1) or ignore it (0) when displaying and changing ordered quantity","","",""); -INSERT INTO `config_i18n` VALUES("1","es_ES","Comprobar disponibilidad de stock de producto (1) o ignorar (0) cuando se muestra o cambia cantidad en pedido","","",""); -INSERT INTO `config_i18n` VALUES("1","fr_FR","Vérifier la présence de produits en stock (1) ou l\'ignorer (0) lors de l\'affichage et la modification des quantités commandées","","",""); -INSERT INTO `config_i18n` VALUES("2","de_DE","Name der aktiven Front Office Template","","",""); -INSERT INTO `config_i18n` VALUES("2","en_US","Name of the active front-office template","","",""); -INSERT INTO `config_i18n` VALUES("2","es_ES","Nombre de la plantilla activa de recepción","","",""); -INSERT INTO `config_i18n` VALUES("2","fr_FR","Nom du modèle de front-office actif","","",""); -INSERT INTO `config_i18n` VALUES("3","de_DE","Name der aktiven Back Office Template","","",""); -INSERT INTO `config_i18n` VALUES("3","en_US","Name of the active back-office template","","",""); -INSERT INTO `config_i18n` VALUES("3","es_ES","Nombe de la plantilla del administrador activo","","",""); -INSERT INTO `config_i18n` VALUES("3","fr_FR","Nom du modèle de back-office actif","","",""); -INSERT INTO `config_i18n` VALUES("4","de_DE","Name der aktiven PDF Template","","",""); -INSERT INTO `config_i18n` VALUES("4","en_US","Name of the active PDF template","","",""); -INSERT INTO `config_i18n` VALUES("4","es_ES","Nombre de la plantilla PDF activa","","",""); -INSERT INTO `config_i18n` VALUES("4","fr_FR","Nom du modèle PDF actif","","",""); -INSERT INTO `config_i18n` VALUES("5","de_DE","Name der aktiven E-Mail Template","","",""); -INSERT INTO `config_i18n` VALUES("5","en_US","Name of the active mailing template","","",""); -INSERT INTO `config_i18n` VALUES("5","es_ES","Nombre de la plantilla de correo activa","","",""); -INSERT INTO `config_i18n` VALUES("5","fr_FR","Nom du modèle d\'e-mail actif","","",""); -INSERT INTO `config_i18n` VALUES("6","de_DE","Aktivieren (1) oder deaktivieren (0) URL Überschreibung","","",""); -INSERT INTO `config_i18n` VALUES("6","en_US","Enable (1) or disable (0) URL rewriting","","",""); -INSERT INTO `config_i18n` VALUES("6","es_ES","Activar(1) o desactivar(0) reescritura de URL","","",""); -INSERT INTO `config_i18n` VALUES("6","fr_FR","Activer (1) ou désactiver (0) la réécriture d\'URL","","",""); -INSERT INTO `config_i18n` VALUES("7","de_DE","Name des Grafik-Treibers, der von der Imagine-Bibliothek verwendet wird (siehe https://imagine.readthedocs.org)","","",""); -INSERT INTO `config_i18n` VALUES("7","en_US","Name of the graphic driver used by the Imagine library (see https://imagine.readthedocs.org)","","",""); -INSERT INTO `config_i18n` VALUES("7","es_ES","Nombre del controlador gráfico usado por la Librería Imagine (ver https://imagine.readthedocs.org)","","",""); -INSERT INTO `config_i18n` VALUES("7","fr_FR","Nom du pilote graphique utilisé par la bibliothèque Imagine (voir https://imagine.readthedocs.org)","","",""); -INSERT INTO `config_i18n` VALUES("8","de_DE","Die Standardqualität (in%) der erzeugten Bilder","","",""); -INSERT INTO `config_i18n` VALUES("8","en_US","The default quality (in %) of the generated images","","",""); -INSERT INTO `config_i18n` VALUES("8","es_ES","La calidad por defecto (en %) de las imágenes generadas","","",""); -INSERT INTO `config_i18n` VALUES("8","fr_FR","La qualité par défaut (en %) dans les images générées","","",""); -INSERT INTO `config_i18n` VALUES("9","de_DE","Wie werden die Originalbilder (volle Auflösung) im Webspace ausgeliefert (symlink or copy)","","",""); -INSERT INTO `config_i18n` VALUES("9","en_US","How original (full resolution) images are delivered in the web space (symlink or copy)","","",""); -INSERT INTO `config_i18n` VALUES("9","es_ES","Cómo se entregan imágenes originales (resolución completa) en el espacio de la web (enlace o copia)","","",""); -INSERT INTO `config_i18n` VALUES("9","fr_FR","Comment les images originales (pleine résolution) sont-elles fournises dans l\'espace web (lien symbolique ou copie)","","",""); -INSERT INTO `config_i18n` VALUES("10","de_DE","Wie werden Dokumentdateien im Webspace (Symlink oder Kopie) ausgeliefert","","",""); -INSERT INTO `config_i18n` VALUES("10","en_US","How document files are delivered in the web space (symlink or copy)","","",""); -INSERT INTO `config_i18n` VALUES("10","es_ES","Cómo los documento son enviados en el espacio de la web (enlace o copia)","","",""); -INSERT INTO `config_i18n` VALUES("10","fr_FR","Comment les documents sont-ils fournis dans l\'espace web (lien symbolique ou copie)","","",""); -INSERT INTO `config_i18n` VALUES("11","de_DE","Pfad zu dem Verzeichnis, in dem Bilder gespeichert sind","","",""); -INSERT INTO `config_i18n` VALUES("11","en_US","Path to the directory where images are stored","","",""); -INSERT INTO `config_i18n` VALUES("11","es_ES","Ruta al directorio donde las imágenes estén guardadas","","",""); -INSERT INTO `config_i18n` VALUES("11","fr_FR","Chemin vers le répertoire où les images sont stockées","","",""); -INSERT INTO `config_i18n` VALUES("12","de_DE","Pfad zu dem Verzeichnis, in dem Dokumente gespeichert sind","","",""); -INSERT INTO `config_i18n` VALUES("12","en_US","Path to the directory where documents are stored","","",""); -INSERT INTO `config_i18n` VALUES("12","es_ES","Ruta al directorio donde los documentos estén guardados","","",""); -INSERT INTO `config_i18n` VALUES("12","fr_FR","Chemin vers le répertoire où sont stockés les documents","","",""); -INSERT INTO `config_i18n` VALUES("13","de_DE","Der Pfad zum Bild-Cache-Verzeichnis in dem Web-Space","","",""); -INSERT INTO `config_i18n` VALUES("13","en_US","The path to the image cache directory in the web space","","",""); -INSERT INTO `config_i18n` VALUES("13","es_ES","La ruta de acceso para el directorio de caché de imagen en el espacio web","","",""); -INSERT INTO `config_i18n` VALUES("13","fr_FR","Chemin vers le répertoire de cache d\'images dans l\'espace web","","",""); -INSERT INTO `config_i18n` VALUES("14","de_DE","Der Pfad zum Dokument-Cache-Verzeichnis in dem Web-Space","","",""); -INSERT INTO `config_i18n` VALUES("14","en_US","The path to the document cache directory in the web space","","",""); -INSERT INTO `config_i18n` VALUES("14","es_ES","La ruta al directorio de caché de documentos en el espacio web","","",""); -INSERT INTO `config_i18n` VALUES("14","fr_FR","Chemin d\'accès au répertoire de cache de documents dans l\'espace web","","",""); -INSERT INTO `config_i18n` VALUES("15","de_DE","Name der Seite 404 (unauffindbar) in dem aktuellen Modell (mit der Dateinamenerweiterung 404.html zum Beispiel)","","",""); -INSERT INTO `config_i18n` VALUES("15","en_US","File name of the 404 (not found) view in the current template (with extension, e.g. 404.html)","","",""); -INSERT INTO `config_i18n` VALUES("15","es_ES","Nombre de archivo de la vista 404 (no encontrado) en la plantilla actual (con la extensión, ej: 404.html)","","",""); -INSERT INTO `config_i18n` VALUES("15","fr_FR","Nom de la page 404 (introuvable) dans le modèle actuel (avec l\'extension, par exemple, 404.html)","","",""); -INSERT INTO `config_i18n` VALUES("16","de_DE","Name des Templates zurückgegeben, wenn eine veraltete (oder inaktive) Produkt-URL aufgerufen wird","","",""); -INSERT INTO `config_i18n` VALUES("16","en_US","Name of the template view returned when an obsolete (or inactive) product URL is invoked","","",""); -INSERT INTO `config_i18n` VALUES("16","es_ES","Nombre de la plantilla regresada cuando se llama una URL obsoleta (o inactiva) de un producto","","",""); -INSERT INTO `config_i18n` VALUES("16","fr_FR","Nom de la page du modèle retournée lorsqu\'une URL obsolète (ou inactive) est invoquée","","",""); -INSERT INTO `config_i18n` VALUES("17","de_DE","Anzeigt und verwendet Preise mit (0) oder ohne (1) Taxen","","",""); -INSERT INTO `config_i18n` VALUES("17","en_US","Display and process prices with (0) or without (1) taxes.","","",""); -INSERT INTO `config_i18n` VALUES("17","es_ES","Mostrar y procesar precios con (0) o sin (1) impuestos.","","",""); -INSERT INTO `config_i18n` VALUES("17","fr_FR","Affiche et traite les prix avec(0) ou sans (1) les taxes","","",""); -INSERT INTO `config_i18n` VALUES("18","de_DE","Template Assets automatisch bei Codeänderungen kompilieren? (1 = ja, 0 = nein)","","",""); -INSERT INTO `config_i18n` VALUES("18","en_US","Compile templates assets automatically upon asset source change (1 = yes, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("18","es_ES","Compilar las plantillas automáticamente en cada cambio de código fuente (1 = sí, 2 = no)","","",""); -INSERT INTO `config_i18n` VALUES("18","fr_FR","Compiler les resources du modèle actif à chaque changement (1 = oui, 2 = non)","","",""); -INSERT INTO `config_i18n` VALUES("19","de_DE","Name des Cookies \"Remember me\" für die Administratoren","","",""); -INSERT INTO `config_i18n` VALUES("19","en_US","\"Remember me\" cookie name for administration users","","",""); -INSERT INTO `config_i18n` VALUES("19","es_ES","Nombre de la cookie \"Recordarme\" para los usuarios de administración","","",""); -INSERT INTO `config_i18n` VALUES("19","fr_FR","Nom du cookie \"Remember me\" pour les utilisateurs d\'administration","","",""); -INSERT INTO `config_i18n` VALUES("20","de_DE","Ablaufzeit in Sekunden des Cookies \"Remember me\" für die Administratoren","","",""); -INSERT INTO `config_i18n` VALUES("20","en_US","\"Remember me\" cookie expiration time, in seconds, for administration users","","",""); -INSERT INTO `config_i18n` VALUES("20","es_ES","Fecha de caducidad de cookie \"recuerdame\", en segundos, para los usuarios de la administración","","",""); -INSERT INTO `config_i18n` VALUES("20","fr_FR","Délai d\'expiration du cookie \"Remember me\", en secondes, pour les utilisateurs d\'administration","","",""); -INSERT INTO `config_i18n` VALUES("21","de_DE","Name des Cookies \"Remember me\" für die Kunden","","",""); -INSERT INTO `config_i18n` VALUES("21","en_US","\"Remember me\" cookie name for customer users","","",""); -INSERT INTO `config_i18n` VALUES("21","es_ES","Nombre de la cookie \"Recordarme\" para los usuarios cliente","","",""); -INSERT INTO `config_i18n` VALUES("21","fr_FR","Nom du cookie \"Remember me\" pour les clients","","",""); -INSERT INTO `config_i18n` VALUES("22","de_DE","Ablaufzeit in Sekunden des Cookies \"Remember me\" für die Kunden","","",""); -INSERT INTO `config_i18n` VALUES("22","en_US","\"Remember me\" cookie expiration time, in seconds, for customer users","","",""); -INSERT INTO `config_i18n` VALUES("22","es_ES","Fecha de caducidad de cookie \"Acuérdate de mi\", en segundos, para los usuarios cliente","","",""); -INSERT INTO `config_i18n` VALUES("22","fr_FR","Délai d\'expiration du cookie \"Remember me\", en secondes, pour les clients","","",""); -INSERT INTO `config_i18n` VALUES("23","de_DE","Shops Basis-URL (zum Beispiel http://www.yourshopdomain.com)","","",""); -INSERT INTO `config_i18n` VALUES("23","en_US","Base URL of the shop (e.g. http://www.yourshopdomain.com)","","",""); -INSERT INTO `config_i18n` VALUES("23","es_ES","Base URL de la tienda (por ejemplo http://www.yourshopdomain.com)","","",""); -INSERT INTO `config_i18n` VALUES("23","fr_FR","URL de base pour la boutique (par exemple http://www.yourshopdomain.com)","","",""); -INSERT INTO `config_i18n` VALUES("24","de_DE","Name der Rechnungsansicht in der aktuellen PDF-Vorlage (ohne Erweiterung)","","",""); -INSERT INTO `config_i18n` VALUES("24","en_US","Name of the invoice view in the current PDF template (without extension)","","",""); -INSERT INTO `config_i18n` VALUES("24","es_ES","Nombre de la vista para la factura en la plantilla PDF actual (sin extensión)","","",""); -INSERT INTO `config_i18n` VALUES("24","fr_FR","Nom de la vue de la facture dans le modèle PDF en cours (sans extension)","","",""); -INSERT INTO `config_i18n` VALUES("25","de_DE","Name der Lieferung Sicht in der aktuellen PDF-Vorlage (ohne Erweiterung)","","",""); -INSERT INTO `config_i18n` VALUES("25","en_US","Name of the delivery view in the current PDF template (without extension)","","",""); -INSERT INTO `config_i18n` VALUES("25","es_ES","Nombre de la vista de entrega en la plantilla PDF actual (sin extensión)","","",""); -INSERT INTO `config_i18n` VALUES("25","fr_FR","Nom de la vue de la livraison dans le modèle PDF en cours (sans extension)","","",""); -INSERT INTO `config_i18n` VALUES("26","de_DE","Der Pfad (relativ zu der Standard-Backoffice-Vorlage) zu dem verwendetes Bild wenn kein Flagge-Bild für ein Land gefunden werden kann","","",""); -INSERT INTO `config_i18n` VALUES("26","en_US","The path (relative to the default back-office template) to the image used when no flag image can be found for a country","","",""); -INSERT INTO `config_i18n` VALUES("26","es_ES","La ruta (relativa a la plantilla de back office por defecto) a la imagen que se utiliza cuando no se puede encontrar ninguna imagen de la bandera para un país","","",""); -INSERT INTO `config_i18n` VALUES("26","fr_FR","Le chemin (par rapport au modèle de back-office par défaut) vers l\'image utilisée lorsque aucune image de drapeau ne peut être trouvée pour un pays","","",""); -INSERT INTO `config_i18n` VALUES("27","de_DE","Whitespace trim Ebene des generierten HTML-Codes (0 = aus, 1 = Mittel, 2 = Maximum)","","",""); -INSERT INTO `config_i18n` VALUES("27","en_US","Whitespace trim level of the generated HTML code (0 = none, 1 = medium, 2 = maximum)","","",""); -INSERT INTO `config_i18n` VALUES("27","es_ES","Espacio en blanco del ajuste nivel del código HTML generado (0 = ninguna, 1 = medio, 2 = máximo)","","",""); -INSERT INTO `config_i18n` VALUES("27","fr_FR","Niveau de découpe des espaces dans le code HTML généré (0 = aucun, 1 = moyen, 2 = maximum)","","",""); -INSERT INTO `config_i18n` VALUES("28","de_DE","Standart verfügbaren Bestand wenn check-available-stock gleich 0.","","",""); -INSERT INTO `config_i18n` VALUES("28","en_US","Default available stock when check-available-stock is set to 0.","","",""); -INSERT INTO `config_i18n` VALUES("28","es_ES","Cuando check-available-stock es 0 stock disponible por defecto.","","",""); -INSERT INTO `config_i18n` VALUES("28","fr_FR","Stock disponible par défaut quand check-available-stock est à 0.","","",""); -INSERT INTO `config_i18n` VALUES("29","de_DE","Die ID des Ordners mit Ihren Informations-Seiten: AGB, Impressum, ...","","",""); -INSERT INTO `config_i18n` VALUES("29","en_US","The ID of the folder containing your information pages : terms, imprint, ...","","",""); -INSERT INTO `config_i18n` VALUES("29","es_ES","El ID de la carpeta que contiene sus páginas de información: términos, impresión,...","","",""); -INSERT INTO `config_i18n` VALUES("29","fr_FR","L\'ID du dossier contenant vos pages d\'informations : CGV, mentions légales, ...","","",""); -INSERT INTO `config_i18n` VALUES("30","de_DE","Ihr \'Allgemeine Geschäftsbedingungen \' ID.","","",""); -INSERT INTO `config_i18n` VALUES("30","en_US","The ID of the \'Terms & Conditions\' content.","","",""); -INSERT INTO `config_i18n` VALUES("30","es_ES","El ID de los contenidos de \'Términos y condiciones\'.","","",""); -INSERT INTO `config_i18n` VALUES("30","fr_FR","L\'ID du contenu de vos \'CGV\'.","","",""); -INSERT INTO `config_i18n` VALUES("31","de_DE","Negativen Lagerbestand erlauben (1) oder nicht (0)","","",""); -INSERT INTO `config_i18n` VALUES("31","en_US","Allow negative product stock (1) or not (0)","","",""); -INSERT INTO `config_i18n` VALUES("31","es_ES","Permitir valores negativos producto (1) o no (0)","","",""); -INSERT INTO `config_i18n` VALUES("31","fr_FR","Autoriser un stock négatif sur les produits (1) ou pas (0, défaut)","","",""); -INSERT INTO `config_i18n` VALUES("32","de_DE","Ein dauerhaftes Cookie verwenden, um den Kundes-Warenkorb zu merken","","",""); -INSERT INTO `config_i18n` VALUES("32","en_US","Use a persistent cookie to keep track of customer cart","","",""); -INSERT INTO `config_i18n` VALUES("32","es_ES","Usa una \'cookie\' persistente para mantener el trayecto del carrito del cliente","","",""); -INSERT INTO `config_i18n` VALUES("32","fr_FR","Utiliser un cookie persistant pour mémoriser le panier du client","","",""); -INSERT INTO `config_i18n` VALUES("33","de_DE","Name der Warenkorb-Cookie","","",""); -INSERT INTO `config_i18n` VALUES("33","en_US","Name of the cart cookie","","",""); -INSERT INTO `config_i18n` VALUES("33","es_ES","Nombre de la cookie del carrito","","",""); -INSERT INTO `config_i18n` VALUES("33","fr_FR","Nom du cookie de stockage du panier","","",""); -INSERT INTO `config_i18n` VALUES("34","de_DE","Dauer der Warenkorb-Cookie in dem Kunden-Browser, in Sekunden","","",""); -INSERT INTO `config_i18n` VALUES("34","en_US","Life time of the cart cookie in the customer browser, in seconds","","",""); -INSERT INTO `config_i18n` VALUES("34","es_ES","Tiempo de vida de la cookie del carro en el navegador del cliente, en segundos","","",""); -INSERT INTO `config_i18n` VALUES("34","fr_FR","Durée de vie du cookie du panier dans le navigateur du client, en secondes","","",""); -INSERT INTO `config_i18n` VALUES("35","de_DE","Dauer der Session-Cookie in dem Kunden-Browser, in Sekunden","","",""); -INSERT INTO `config_i18n` VALUES("35","en_US","Life time of the session cookie in the customer browser, in seconds","","",""); -INSERT INTO `config_i18n` VALUES("35","es_ES","Tiempo de vida de la cookie de la sesión en el navegador del cliente, en segundos","","",""); -INSERT INTO `config_i18n` VALUES("35","fr_FR","Durée de vie du cookie de la session dans le navigateur du client, en secondes","","",""); -INSERT INTO `config_i18n` VALUES("36","de_DE","Die Session Standartkonfiguration lassen","","",""); -INSERT INTO `config_i18n` VALUES("36","en_US","Leave the default configuration of session","","",""); -INSERT INTO `config_i18n` VALUES("36","es_ES","Abandonde la configuración predeterminada de la sesión","","",""); -INSERT INTO `config_i18n` VALUES("36","fr_FR","Laisser la configuration par défaut de la session","","",""); -INSERT INTO `config_i18n` VALUES("37","de_DE","Standartsprache ohne Übersetzung","","",""); -INSERT INTO `config_i18n` VALUES("37","en_US","Default lang without translation","","",""); -INSERT INTO `config_i18n` VALUES("37","es_ES","Lenguaje por defecto sin traducción","","",""); -INSERT INTO `config_i18n` VALUES("37","fr_FR","Langue par défaut sans traduction","","",""); -INSERT INTO `config_i18n` VALUES("52","de_DE","[Firewall/Bruteforce] Wartezeit zwischen X Versuche","","",""); -INSERT INTO `config_i18n` VALUES("52","en_US","[Firewall/Bruteforce] Time to wait between X attempts","","",""); -INSERT INTO `config_i18n` VALUES("52","es_ES","[Firewall/Bruteforce] Tiempo de espera entre X intentos","","",""); -INSERT INTO `config_i18n` VALUES("52","fr_FR","[Pare-feu/Bruteforce] Temps à attendre entre X essais","","",""); -INSERT INTO `config_i18n` VALUES("53","de_DE","[Firewall] Wartezeit zwischen X Versuche","","",""); -INSERT INTO `config_i18n` VALUES("53","en_US","[Firewall] Time to wait between X attempts","","",""); -INSERT INTO `config_i18n` VALUES("53","es_ES","[Firewall] Tiempo de espera entre X intentos","","",""); -INSERT INTO `config_i18n` VALUES("53","fr_FR","[Pare-feu] Temps à attendre entre X essais","","",""); -INSERT INTO `config_i18n` VALUES("54","de_DE","[Firewall/Bruteforce] Anzahl der erlaubten Versuche","","",""); -INSERT INTO `config_i18n` VALUES("54","en_US","[Firewall/Bruteforce] Number of allowed attemps","","",""); -INSERT INTO `config_i18n` VALUES("54","es_ES","[Firewall/Bruteforce] Número de intentos permitidos","","",""); -INSERT INTO `config_i18n` VALUES("54","fr_FR","[Pare-feu/Bruteforce] Nombre de tentatives autorisées","","",""); -INSERT INTO `config_i18n` VALUES("55","de_DE","[Firewall] Anzahl der erlaubten Versuche","","",""); -INSERT INTO `config_i18n` VALUES("55","en_US","[Firewall] Number of allowed attemps","","",""); -INSERT INTO `config_i18n` VALUES("55","es_ES","[Firewall] Número de intentos permitidos","","",""); -INSERT INTO `config_i18n` VALUES("55","fr_FR","[Pare-feu] Nombre de tentatives autorisées","","",""); -INSERT INTO `config_i18n` VALUES("56","de_DE","[Firewall] Firewall aktivieren","","",""); -INSERT INTO `config_i18n` VALUES("56","en_US","[Firewall] Activate the firewall","","",""); -INSERT INTO `config_i18n` VALUES("56","es_ES","[Firewall] Activar el firewall","","",""); -INSERT INTO `config_i18n` VALUES("56","fr_FR","[Pare-feu] Activer le pare-feu","","",""); -INSERT INTO `config_i18n` VALUES("57","de_DE","URI mit Slash beendet erlauben","","",""); -INSERT INTO `config_i18n` VALUES("57","en_US","Allow slash ended uri","","",""); -INSERT INTO `config_i18n` VALUES("57","es_ES","Permitir barra de fín de url","","",""); -INSERT INTO `config_i18n` VALUES("57","fr_FR","Autoriser les URI terminées par un slash","","",""); -INSERT INTO `config_i18n` VALUES("58","de_DE","Fehlermeldung zeigen anstatt einer weißen Seite im Falle eines eines Serverfehlers","","",""); -INSERT INTO `config_i18n` VALUES("58","en_US","Show error message instead of a white page on a server error","","",""); -INSERT INTO `config_i18n` VALUES("58","es_ES","Mostrar mensaje de error en lugar de una página en blanco cuando ocurre un error de servidor","","",""); -INSERT INTO `config_i18n` VALUES("58","fr_FR","Afficher un message d\'erreur à la place d\'une page blanche lors d\'une erreur serveur","","",""); -INSERT INTO `config_i18n` VALUES("59","de_DE","Dateiname der Fehlerseite","","",""); -INSERT INTO `config_i18n` VALUES("59","en_US","Filename of the error page","","",""); -INSERT INTO `config_i18n` VALUES("59","es_ES","Nombre de archivo de la página de error","","",""); -INSERT INTO `config_i18n` VALUES("59","fr_FR","Nom du fichier de la page d\'erreur","","",""); -INSERT INTO `config_i18n` VALUES("60","de_DE","Den Kunden erlauben ihre E-Mail-Adresse zu ändern. 1 für Ja, 0 für Nein","","",""); -INSERT INTO `config_i18n` VALUES("60","en_US","Allow customers to change their email. 1 for yes, 0 for no","","",""); -INSERT INTO `config_i18n` VALUES("60","es_ES","Permitir a los clientes cambiar su correo electrónico. 1 para sí, 0 para no","","",""); -INSERT INTO `config_i18n` VALUES("60","fr_FR","Permettre aux utilisateurs de changer leur email. 1 pour oui, 0 pour non","","",""); -INSERT INTO `config_i18n` VALUES("61","de_DE","Den Kunden fragen, ihre E-Mail-Adresse zu bestätigen. 1 für Jan, 0 für Nein","","",""); -INSERT INTO `config_i18n` VALUES("61","en_US","Ask the customers to confirm their email, 1 for yes, 0 for no","","",""); -INSERT INTO `config_i18n` VALUES("61","es_ES","Preguntar al cliente para confirmar su correo electrónico, 1 para sí, 0 no","","",""); -INSERT INTO `config_i18n` VALUES("61","fr_FR","Demander aux clients de confirmer leur email. 1 pour oui, 0 pour non","","",""); -INSERT INTO `config_i18n` VALUES("62","de_DE","Geheimer Schlüssel für Formular CSRF-token","","",""); -INSERT INTO `config_i18n` VALUES("62","en_US","Secret key for form CSRF token","","",""); -INSERT INTO `config_i18n` VALUES("62","es_ES","Clave secreta para el token CSRF del formulario","","",""); -INSERT INTO `config_i18n` VALUES("62","fr_FR","Clé secrète pour le jeton CSRF des formulaires","","",""); -INSERT INTO `config_i18n` VALUES("63","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("63","en_US","The minimum length required for an administrator password","","",""); -INSERT INTO `config_i18n` VALUES("63","es_ES","La longitud mínima de la contraseña de administrador","","",""); -INSERT INTO `config_i18n` VALUES("63","fr_FR","La longueur minimale requise pour un mot de passe administrateur","","",""); -INSERT INTO `config_i18n` VALUES("64","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("64","en_US","Allow an administrator to recreate a lost password (1 = yes, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("64","es_ES","Permite a un administrador recrear una contraseña perdida (1 = sí, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("64","fr_FR","Permettre à un administrateur de recréer un mot de passe perdu (1 = Oui, 0 = non)","","",""); -INSERT INTO `config_i18n` VALUES("65","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("65","en_US","Send a confirmation email to newsletter subscribers (1 = yes, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("65","es_ES","Enviar un correo de confirmación a los suscriptores del boletín (1 = sí, 0 = no)","","",""); -INSERT INTO `config_i18n` VALUES("65","fr_FR","Envoyer un email de confirmation aux abonnés de la newsletter (1 = Oui, 0 = non)","","",""); -INSERT INTO `config_i18n` VALUES("66","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("66","en_US","Number by default of results per page for product list","","",""); -INSERT INTO `config_i18n` VALUES("66","es_ES","Número predeterminado de resultados por página para la lista de productos","","",""); -INSERT INTO `config_i18n` VALUES("66","fr_FR","Nombre par défaut de résultats par page pour la liste des produits","","",""); -INSERT INTO `config_i18n` VALUES("67","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("67","en_US","Number by default of results per page for order list","","",""); -INSERT INTO `config_i18n` VALUES("67","es_ES","Número predeterminado de resultados por página para la lista de pedidos","","",""); -INSERT INTO `config_i18n` VALUES("67","fr_FR","Nombre par défaut de résultats par page pour la liste des commandes","","",""); -INSERT INTO `config_i18n` VALUES("68","de_DE","","","",""); -INSERT INTO `config_i18n` VALUES("68","en_US","Number by default of results per page for customer list","","",""); -INSERT INTO `config_i18n` VALUES("68","es_ES","Número predeterminado de resultados por página para la lista de clientes","","",""); -INSERT INTO `config_i18n` VALUES("68","fr_FR","Nombre par défaut de résultats par page pour la liste des clients","","",""); - - - -DROP TABLE `content`; - -CREATE TABLE `content` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `content` VALUES("1","1","1","2017-05-11 23:49:17","2017-05-12 00:05:14","2","2017-05-11 23:49:17",""); - - - -DROP TABLE `content_document`; - -CREATE TABLE `content_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `content_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_content_document_content_id` (`content_id`), - CONSTRAINT `fk_content_document_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `content_document_i18n`; - -CREATE TABLE `content_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `content_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `content_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `content_folder`; - -CREATE TABLE `content_folder` ( - `content_id` int(11) NOT NULL, - `folder_id` int(11) NOT NULL, - `default_folder` tinyint(1) DEFAULT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`content_id`,`folder_id`), - KEY `idx_content_folder_content_id` (`content_id`), - KEY `idx_content_folder_folder_id` (`folder_id`), - KEY `idx_content_folder_default` (`default_folder`), - CONSTRAINT `fk_content_folder_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_content_folder_folder_id` FOREIGN KEY (`folder_id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `content_folder` VALUES("1","1","1","1","2017-05-11 23:49:17","2017-05-11 23:49:17"); - - - -DROP TABLE `content_i18n`; - -CREATE TABLE `content_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `content_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `content_i18n` VALUES("1","fr_FR","Nos pots","Afin que vous vous rendiez compte de la taille des différents pots que nous proposons, voici à quoi ressemblent nos conditionnements.\n\n* Les poids de nos pots sont indiqués à titre indicatif et peuvent varier en fonction du contenu.\nContenance Poids net moyen Hauteur Diamètre\n41ml 45g 55mm 45mm\n106ml 115g 75mm 50mm\n228ml 245g 88mm 68mm\n375ml 430g 122mm 70mm","","","","",""); - - - -DROP TABLE `content_image`; - -CREATE TABLE `content_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `content_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_content_image_content_id` (`content_id`), - KEY `idx_content_image_content_id_position` (`content_id`,`position`), - CONSTRAINT `fk_content_image_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `content_image_i18n`; - -CREATE TABLE `content_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `content_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `content_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `content_version`; - -CREATE TABLE `content_version` ( - `id` int(11) NOT NULL, - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `content_version_FK_1` FOREIGN KEY (`id`) REFERENCES `content` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `content_version` VALUES("1","1","","2017-05-11 23:49:17","2017-05-11 23:49:17","1","2017-05-11 23:49:17",""); -INSERT INTO `content_version` VALUES("1","1","1","2017-05-11 23:49:17","2017-05-11 23:49:17","2","2017-05-11 23:49:17",""); - - - -DROP TABLE `country`; - -CREATE TABLE `country` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` tinyint(4) NOT NULL DEFAULT '0', - `isocode` varchar(4) NOT NULL, - `isoalpha2` varchar(2) DEFAULT NULL, - `isoalpha3` varchar(4) DEFAULT NULL, - `has_states` tinyint(4) DEFAULT '0', - `need_zip_code` tinyint(4) DEFAULT '0', - `zip_code_format` varchar(20) DEFAULT NULL, - `by_default` tinyint(4) DEFAULT '0', - `shop_country` tinyint(1) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_country_by_default` (`by_default`) -) ENGINE=InnoDB AUTO_INCREMENT=273 DEFAULT CHARSET=utf8; - -INSERT INTO `country` VALUES("1","0","4","AF","AFG","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("2","0","710","ZA","ZAF","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("3","0","8","AL","ALB","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("4","0","12","DZ","DZA","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("5","0","276","DE","DEU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("6","0","20","AD","AND","0","1","CNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("7","0","24","AO","AGO","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("8","0","28","AG","ATG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("9","0","682","SA","SAU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("10","0","32","AR","ARG","1","1","LNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("11","0","51","AM","ARM","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("12","0","36","AU","AUS","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("13","0","40","AT","AUT","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("14","0","31","AZ","AZE","0","1","CNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("15","0","44","BS","BHS","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("16","0","48","BH","BHR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("17","0","50","BD","BGD","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("18","0","52","BB","BRB","0","1","CNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("19","0","585","PW","PLW","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("20","0","56","BE","BEL","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("21","0","84","BL","BLZ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("22","0","204","BJ","BEN","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("23","0","64","BT","BTN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("24","0","112","BY","BLR","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("25","0","104","MM","MMR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("26","0","68","BO","BOL","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("27","0","70","BA","BIH","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("28","0","72","BW","BWA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("29","0","76","BR","BRA","0","1","NNNNN-NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("30","0","96","BN","BRN","0","1","LLNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("31","0","100","BG","BGR","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("32","0","854","BF","BFA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("33","0","108","BI","BDI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("34","0","116","KH","KHM","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("35","0","120","CM","CMR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("37","0","132","CV","CPV","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("38","0","152","CL","CHL","0","1","NNN-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("39","0","156","CN","CHN","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("40","0","196","CY","CYP","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("41","0","170","CO","COL","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("42","0","174","KM","COM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("43","0","178","CG","COG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("44","0","184","CK","COK","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("45","0","408","KP","PRK","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("46","0","410","KR","KOR","0","1","NNN-NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("47","0","188","CR","CRI","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("48","0","384","CI","CIV","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("49","0","191","HR","HRV","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("50","0","192","CU","CUB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("51","0","208","DK","DNK","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("52","0","262","DJ","DJI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("53","0","212","DM","DMA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("54","0","818","EG","EGY","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("55","0","784","AE","ARE","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("56","0","218","EC","ECU","0","1","CNNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("57","0","232","ER","ERI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("58","0","724","ES","ESP","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("59","0","233","EE","EST","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("61","0","231","ET","ETH","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("62","0","242","FJ","FJI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("63","0","246","FI","FIN","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("64","1","250","FR","FRA","0","1","NNNNN","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("65","0","266","GA","GAB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("66","0","270","GM","GMB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("67","0","268","GE","GEO","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("68","0","288","GH","GHA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("69","0","300","GR","GRC","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("70","0","308","GD","GRD","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("71","0","320","GT","GTM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("72","0","324","GN","GIN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("73","0","624","GW","GNB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("74","0","226","GQ","GNQ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("75","0","328","GY","GUY","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("76","0","332","HT","HTI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("77","0","340","HN","HND","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("78","0","348","HU","HUN","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("79","0","356","IN","IND","0","1","NNN NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("80","0","360","ID","IDN","1","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("81","0","364","IR","IRN","0","1","NNNNN-NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("82","0","368","IQ","IRQ","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("83","0","372","IE","IRL","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("84","0","352","IS","ISL","0","1","NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("85","0","376","IL","ISR","0","1","NNNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("86","0","380","IT","ITA","1","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("87","0","388","JM","JAM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("88","0","392","JP","JPN","1","1","NNN-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("89","0","400","JO","JOR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("90","0","398","KZ","KAZ","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("91","0","404","KE","KEN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("92","0","417","KG","KGZ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("93","0","296","KI","KIR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("94","0","414","KW","KWT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("95","0","418","LA","LAO","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("96","0","426","LS","LSO","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("97","0","428","LV","LVA","0","1","C-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("98","0","422","LB","LBN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("99","0","430","LR","LBR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("100","0","343","LY","LBY","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("101","0","438","LI","LIE","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("102","0","440","LT","LTU","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("103","0","442","LU","LUX","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("104","0","807","MK","MKD","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("105","0","450","MG","MDG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("106","0","458","MY","MYS","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("107","0","454","MW","MWI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("108","0","462","MV","MDV","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("109","0","466","ML","MLI","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("110","0","470","MT","MLT","0","1","LLL NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("111","0","504","MA","MAR","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("112","0","584","MH","MHL","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("113","0","480","MU","MUS","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("114","0","478","MR","MRT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("115","0","484","MX","MEX","1","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("116","0","583","FM","FSM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("117","0","498","MD","MDA","0","1","C-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("118","0","492","MC","MCO","0","1","980NN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("119","0","496","MN","MNG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("120","0","508","MZ","MOZ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("121","0","516","NA","NAM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("122","0","520","NR","NRU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("123","0","524","NP","NPL","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("124","0","558","NI","NIC","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("125","0","562","NE","NER","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("126","0","566","NG","NGA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("127","0","570","NU","NIU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("128","0","578","NO","NOR","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("129","0","554","NZ","NZL","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("130","0","512","OM","OMN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("131","0","800","UG","UGA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("132","0","860","UZ","UZB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("133","0","586","PK","PAK","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("134","0","591","PA","PAN","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("135","0","598","PG","PNG","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("136","0","600","PY","PRY","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("137","0","528","NL","NLD","0","1","NNNN LL","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("138","0","604","PE","PER","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("139","0","608","PH","PHL","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("140","0","616","PL","POL","0","1","NN-NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("141","0","620","PT","PRT","0","1","NNNN-NNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("142","0","634","QA","QAT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("143","0","140","CF","CAF","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("144","0","214","DO","DOM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("145","0","203","CZ","CZE","0","1","NNN NN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("146","0","642","RO","ROU","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("147","0","826","GB","GBR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("148","0","643","RU","RUS","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("149","0","646","RW","RWA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("150","0","659","KN","KNA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("151","0","662","LC","LCA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("152","0","674","SM","SMR","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("153","0","670","VC","VCT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("154","0","90","SB","SLB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("155","0","222","SV","SLV","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("156","0","882","WS","WSM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("157","0","678","ST","STP","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("158","0","686","SN","SEN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("159","0","690","SC","SYC","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("160","0","694","SL","SLE","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("161","0","702","SG","SGP","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("162","0","703","SK","SVK","0","1","NNN NN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("163","0","705","SI","SVN","0","1","C-NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("164","0","706","SO","SOM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("165","0","729","SD","SDN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("166","0","144","LK","LKA","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("167","0","752","SE","SWE","0","1","NNN NN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("168","0","756","CH","CHE","0","1","NNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("169","0","740","SR","SUR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("170","0","748","SZ","SWZ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("171","0","760","SY","SYR","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("172","0","762","TJ","TJK","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("173","0","834","TZ","TZA","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("174","0","148","TD","TCD","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("175","0","764","TH","THA","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("176","0","768","TG","TGO","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("177","0","776","TO","TON","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("178","0","780","TT","TTO","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("179","0","788","TN","TUN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("180","0","795","TM","TKM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("181","0","792","TR","TUR","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("182","0","798","TV","TUV","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("183","0","804","UA","UKR","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("184","0","858","UY","URY","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("185","0","336","VA","VAT","0","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("186","0","548","VU","VUT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("187","0","862","VE","VEN","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("188","0","704","VN","VNM","0","1","NNNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("189","0","887","YE","YEM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("191","0","180","CD","COD","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("192","0","894","ZM","ZMB","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("193","0","716","ZW","ZWE","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("196","0","840","US","USA","1","1","NNNNN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("246","0","124","CA","CAN","1","1","LNL NLN","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("259","0","312","GP","GLP","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("260","0","254","GF","GUF","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("261","0","474","MQ","MTQ","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("262","0","175","YT","MYT","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("263","0","638","RE","REU","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("264","0","666","PM","SPM","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("265","0","540","NC","NCL","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("266","0","258","PF","PYF","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("267","0","876","WF","WLF","0","1","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("269","0","344","HK","HKG","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("270","0","652","BL","BLM","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("271","0","663","MF","MAF","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country` VALUES("272","0","260","TF","ATF","0","0","","0","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `country_area`; - -CREATE TABLE `country_area` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `country_id` int(11) NOT NULL, - `state_id` int(11) DEFAULT NULL, - `area_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `country_area_area_id_idx` (`area_id`), - KEY `fk_country_area_country_id_idx` (`country_id`), - KEY `fk_country_area_state_id_idx` (`state_id`), - CONSTRAINT `fk_country_area_area_id` FOREIGN KEY (`area_id`) REFERENCES `area` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_country_area_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=405 DEFAULT CHARSET=utf8; - -INSERT INTO `country_area` VALUES("1","1","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("2","2","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("3","3","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("4","4","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("5","5","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("6","6","","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("7","7","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("8","8","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("9","9","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("10","10","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("11","11","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("12","12","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("13","13","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("14","14","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("15","15","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("16","16","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("17","17","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("18","18","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("19","19","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("20","20","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("21","21","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("22","22","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("23","24","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("24","25","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("25","26","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("26","27","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("27","28","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("28","29","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("29","30","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("30","31","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("31","32","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("32","33","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("33","34","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("34","35","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("35","37","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("36","38","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("37","39","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("38","40","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("39","41","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("40","42","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("41","43","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("42","44","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("43","45","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("44","46","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("45","47","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("46","48","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("47","49","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("48","50","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("49","51","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("50","52","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("51","53","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("52","54","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("53","55","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("54","56","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("55","57","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("56","58","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("57","59","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("58","61","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("59","62","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("60","63","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("61","64","","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("62","65","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("63","66","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("64","67","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("65","68","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("66","69","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("67","70","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("68","71","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("69","72","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("70","73","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("71","74","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("72","75","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("73","76","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("74","77","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("75","78","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("76","79","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("77","80","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("78","81","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("79","82","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("80","83","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("81","84","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("82","85","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("83","86","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("84","87","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("85","88","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("86","89","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("87","90","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("88","91","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("89","92","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("90","93","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("91","94","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("92","95","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("93","96","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("94","97","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("95","98","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("96","99","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("97","100","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("98","101","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("99","102","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("100","103","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("101","104","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("102","105","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("103","106","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("104","107","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("105","108","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("106","109","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("107","110","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("108","111","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("109","112","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("110","113","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("111","114","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("112","115","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("113","117","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("114","118","","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("115","119","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("116","120","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("117","121","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("118","122","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("119","123","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("120","124","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("121","125","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("122","126","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("123","128","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("124","129","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("125","130","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("126","131","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("127","132","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("128","133","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("129","134","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("130","135","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("131","136","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("132","137","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("133","138","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("134","139","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("135","140","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("136","141","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("137","142","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("138","143","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("139","144","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("140","145","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("141","146","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("142","147","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("143","148","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("144","149","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("145","150","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("146","151","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("147","152","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("148","153","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("149","154","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("150","156","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("151","157","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("152","158","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("153","159","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("154","160","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("155","161","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("156","162","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("157","163","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("158","164","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("159","165","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("160","166","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("161","167","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("162","168","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("163","169","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("164","170","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("165","171","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("166","172","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("167","173","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("168","174","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("169","175","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("170","176","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("171","177","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("172","178","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("173","179","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("174","180","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("175","181","","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("176","182","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("177","183","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("178","184","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("179","185","","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("180","186","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("181","187","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("182","188","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("183","189","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("184","191","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("185","192","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("186","193","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("187","196","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("188","246","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("189","259","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("190","260","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("191","261","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("192","262","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("193","263","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("194","264","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("195","265","","6","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("196","266","","6","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("197","267","","6","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("198","269","","4","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("199","270","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("200","271","","5","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("201","272","","6","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("202","1","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("203","2","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("204","3","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("205","4","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("206","5","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("207","6","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("208","7","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("209","8","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("210","9","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("211","10","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("212","11","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("213","12","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("214","13","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("215","14","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("216","15","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("217","16","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("218","17","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("219","18","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("220","19","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("221","20","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("222","21","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("223","22","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("224","23","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("225","24","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("226","25","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("227","26","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("228","27","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("229","28","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("230","29","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("231","30","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("232","31","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("233","32","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("234","33","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("235","34","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("236","35","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("237","37","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("238","38","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("239","39","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("240","40","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("241","41","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("242","42","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("243","43","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("244","44","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("245","45","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("246","46","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("247","47","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("248","48","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("249","49","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("250","50","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("251","51","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("252","52","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("253","53","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("254","54","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("255","55","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("256","56","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("257","57","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("258","58","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("259","59","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("260","61","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("261","62","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("262","63","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("263","64","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("264","65","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("265","66","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("266","67","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("267","68","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("268","69","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("269","70","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("270","71","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("271","72","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("272","73","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("273","74","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("274","75","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("275","76","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("276","77","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("277","78","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("278","79","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("279","80","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("280","81","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("281","82","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("282","83","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("283","84","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("284","85","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("285","86","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("286","87","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("287","88","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("288","89","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("289","90","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("290","91","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("291","92","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("292","93","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("293","94","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("294","95","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("295","96","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("296","97","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("297","98","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("298","99","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("299","100","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("300","101","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("301","102","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("302","103","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("303","104","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("304","105","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("305","106","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("306","107","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("307","108","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("308","109","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("309","110","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("310","111","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("311","112","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("312","113","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("313","114","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("314","115","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("315","116","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("316","117","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("317","118","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("318","119","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("319","120","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("320","121","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("321","122","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("322","123","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("323","124","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("324","125","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("325","126","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("326","127","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("327","128","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("328","129","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("329","130","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("330","131","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("331","132","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("332","133","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("333","134","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("334","135","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("335","136","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("336","137","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("337","138","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("338","139","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("339","140","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("340","141","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("341","142","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("342","143","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("343","144","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("344","145","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("345","146","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("346","147","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("347","148","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("348","149","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("349","150","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("350","151","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("351","152","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("352","153","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("353","154","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("354","155","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("355","156","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("356","157","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("357","158","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("358","159","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("359","160","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("360","161","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("361","162","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("362","163","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("363","164","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("364","165","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("365","166","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("366","167","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("367","168","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("368","169","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("369","170","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("370","171","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("371","172","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("372","173","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("373","174","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("374","175","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("375","176","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("376","177","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("377","178","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("378","179","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("379","180","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("380","181","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("381","182","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("382","183","","7","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("383","184","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("384","185","","13","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("385","186","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("386","187","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("387","188","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("388","189","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("389","191","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("390","192","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("391","193","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("392","196","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("393","246","","8","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("394","259","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("395","260","","12","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("396","261","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("397","262","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("398","263","","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("399","264","","14","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("400","265","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("401","266","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("402","267","","11","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("403","269","","9","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `country_area` VALUES("404","64","","15","2017-03-02 15:51:56","2017-03-02 15:51:56"); - - - -DROP TABLE `country_i18n`; - -CREATE TABLE `country_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `country_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `country` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `country_i18n` VALUES("1","de_DE","Afghanistan","","",""); -INSERT INTO `country_i18n` VALUES("1","en_US","Afghanistan","","",""); -INSERT INTO `country_i18n` VALUES("1","es_ES","Afganistán","","",""); -INSERT INTO `country_i18n` VALUES("1","fr_FR","Afghanistan","","",""); -INSERT INTO `country_i18n` VALUES("2","de_DE","Südafrika","","",""); -INSERT INTO `country_i18n` VALUES("2","en_US","South Africa","","",""); -INSERT INTO `country_i18n` VALUES("2","es_ES","Sudáfrica","","",""); -INSERT INTO `country_i18n` VALUES("2","fr_FR","Afrique du Sud","","",""); -INSERT INTO `country_i18n` VALUES("3","de_DE","Albanien","","",""); -INSERT INTO `country_i18n` VALUES("3","en_US","Albania","","",""); -INSERT INTO `country_i18n` VALUES("3","es_ES","Albania","","",""); -INSERT INTO `country_i18n` VALUES("3","fr_FR","Albanie","","",""); -INSERT INTO `country_i18n` VALUES("4","de_DE","Algerien","","",""); -INSERT INTO `country_i18n` VALUES("4","en_US","Algeria","","",""); -INSERT INTO `country_i18n` VALUES("4","es_ES","Argelia","","",""); -INSERT INTO `country_i18n` VALUES("4","fr_FR","Algérie","","",""); -INSERT INTO `country_i18n` VALUES("5","de_DE","Deutschland","","",""); -INSERT INTO `country_i18n` VALUES("5","en_US","Germany","","",""); -INSERT INTO `country_i18n` VALUES("5","es_ES","Alemania","","",""); -INSERT INTO `country_i18n` VALUES("5","fr_FR","Allemagne","","",""); -INSERT INTO `country_i18n` VALUES("6","de_DE","Andorra","","",""); -INSERT INTO `country_i18n` VALUES("6","en_US","Andorra","","",""); -INSERT INTO `country_i18n` VALUES("6","es_ES","Andorra","","",""); -INSERT INTO `country_i18n` VALUES("6","fr_FR","Andorre","","",""); -INSERT INTO `country_i18n` VALUES("7","de_DE","Angola","","",""); -INSERT INTO `country_i18n` VALUES("7","en_US","Angola","","",""); -INSERT INTO `country_i18n` VALUES("7","es_ES","Angola","","",""); -INSERT INTO `country_i18n` VALUES("7","fr_FR","Angola","","",""); -INSERT INTO `country_i18n` VALUES("8","de_DE","Antigua und Barbuda","","",""); -INSERT INTO `country_i18n` VALUES("8","en_US","Antigua and Barbuda","","",""); -INSERT INTO `country_i18n` VALUES("8","es_ES","Antigua y Barbuda","","",""); -INSERT INTO `country_i18n` VALUES("8","fr_FR","Antigua-et-Barbuda","","",""); -INSERT INTO `country_i18n` VALUES("9","de_DE","Saudi-Arabien","","",""); -INSERT INTO `country_i18n` VALUES("9","en_US","Saudi Arabia","","",""); -INSERT INTO `country_i18n` VALUES("9","es_ES","Arabia Saudita","","",""); -INSERT INTO `country_i18n` VALUES("9","fr_FR","Arabie saoudite","","",""); -INSERT INTO `country_i18n` VALUES("10","de_DE","Argentinien","","",""); -INSERT INTO `country_i18n` VALUES("10","en_US","Argentina","","",""); -INSERT INTO `country_i18n` VALUES("10","es_ES","Argentina","","",""); -INSERT INTO `country_i18n` VALUES("10","fr_FR","Argentine","","",""); -INSERT INTO `country_i18n` VALUES("11","de_DE","Armenien","","",""); -INSERT INTO `country_i18n` VALUES("11","en_US","Armenia","","",""); -INSERT INTO `country_i18n` VALUES("11","es_ES","Armenia","","",""); -INSERT INTO `country_i18n` VALUES("11","fr_FR","Arménie","","",""); -INSERT INTO `country_i18n` VALUES("12","de_DE","Australien","","",""); -INSERT INTO `country_i18n` VALUES("12","en_US","Australia","","",""); -INSERT INTO `country_i18n` VALUES("12","es_ES","Australia","","",""); -INSERT INTO `country_i18n` VALUES("12","fr_FR","Australie","","",""); -INSERT INTO `country_i18n` VALUES("13","de_DE","Österreich","","",""); -INSERT INTO `country_i18n` VALUES("13","en_US","Austria","","",""); -INSERT INTO `country_i18n` VALUES("13","es_ES","Austria","","",""); -INSERT INTO `country_i18n` VALUES("13","fr_FR","Autriche","","",""); -INSERT INTO `country_i18n` VALUES("14","de_DE","Aserbaidschan","","",""); -INSERT INTO `country_i18n` VALUES("14","en_US","Azerbaijan","","",""); -INSERT INTO `country_i18n` VALUES("14","es_ES","Azerbaiyán","","",""); -INSERT INTO `country_i18n` VALUES("14","fr_FR","Azerbaïdjan","","",""); -INSERT INTO `country_i18n` VALUES("15","de_DE","Bahamas","","",""); -INSERT INTO `country_i18n` VALUES("15","en_US","Bahamas","","",""); -INSERT INTO `country_i18n` VALUES("15","es_ES","Bahamas","","",""); -INSERT INTO `country_i18n` VALUES("15","fr_FR","Bahamas","","",""); -INSERT INTO `country_i18n` VALUES("16","de_DE","Bahrein","","",""); -INSERT INTO `country_i18n` VALUES("16","en_US","Bahrain","","",""); -INSERT INTO `country_i18n` VALUES("16","es_ES","Bahrein","","",""); -INSERT INTO `country_i18n` VALUES("16","fr_FR","Bahreïn","","",""); -INSERT INTO `country_i18n` VALUES("17","de_DE","Bangladesch","","",""); -INSERT INTO `country_i18n` VALUES("17","en_US","Bangladesh","","",""); -INSERT INTO `country_i18n` VALUES("17","es_ES","Bangladesh","","",""); -INSERT INTO `country_i18n` VALUES("17","fr_FR","Bangladesh","","",""); -INSERT INTO `country_i18n` VALUES("18","de_DE","Barbados","","",""); -INSERT INTO `country_i18n` VALUES("18","en_US","Barbados","","",""); -INSERT INTO `country_i18n` VALUES("18","es_ES","Barbados","","",""); -INSERT INTO `country_i18n` VALUES("18","fr_FR","Barbade","","",""); -INSERT INTO `country_i18n` VALUES("19","de_DE","Weißrussland","","",""); -INSERT INTO `country_i18n` VALUES("19","en_US","Belarus","","",""); -INSERT INTO `country_i18n` VALUES("19","es_ES","Belarús","","",""); -INSERT INTO `country_i18n` VALUES("19","fr_FR","Belarus","","",""); -INSERT INTO `country_i18n` VALUES("20","de_DE","Belgien","","",""); -INSERT INTO `country_i18n` VALUES("20","en_US","Belgium","","",""); -INSERT INTO `country_i18n` VALUES("20","es_ES","Bélgica","","",""); -INSERT INTO `country_i18n` VALUES("20","fr_FR","Belgique","","",""); -INSERT INTO `country_i18n` VALUES("21","de_DE","Belize","","",""); -INSERT INTO `country_i18n` VALUES("21","en_US","Belize","","",""); -INSERT INTO `country_i18n` VALUES("21","es_ES","Belice","","",""); -INSERT INTO `country_i18n` VALUES("21","fr_FR","Belize","","",""); -INSERT INTO `country_i18n` VALUES("22","de_DE","Bénin","","",""); -INSERT INTO `country_i18n` VALUES("22","en_US","Benin","","",""); -INSERT INTO `country_i18n` VALUES("22","es_ES","Benin","","",""); -INSERT INTO `country_i18n` VALUES("22","fr_FR","Bénin","","",""); -INSERT INTO `country_i18n` VALUES("23","de_DE","Bhutan","","",""); -INSERT INTO `country_i18n` VALUES("23","en_US","Bhutan","","",""); -INSERT INTO `country_i18n` VALUES("23","es_ES","Bhután","","",""); -INSERT INTO `country_i18n` VALUES("23","fr_FR","Bhoutan","","",""); -INSERT INTO `country_i18n` VALUES("24","de_DE","Weißrussland","","",""); -INSERT INTO `country_i18n` VALUES("24","en_US","Bielorussia","","",""); -INSERT INTO `country_i18n` VALUES("24","es_ES","Bielorusia","","",""); -INSERT INTO `country_i18n` VALUES("24","fr_FR","Biélorussie","","",""); -INSERT INTO `country_i18n` VALUES("25","de_DE","Birma","","",""); -INSERT INTO `country_i18n` VALUES("25","en_US","Burma","","",""); -INSERT INTO `country_i18n` VALUES("25","es_ES","Birmania","","",""); -INSERT INTO `country_i18n` VALUES("25","fr_FR","Birmanie","","",""); -INSERT INTO `country_i18n` VALUES("26","de_DE","Bolivien","","",""); -INSERT INTO `country_i18n` VALUES("26","en_US","Bolivia","","",""); -INSERT INTO `country_i18n` VALUES("26","es_ES","Bolivia","","",""); -INSERT INTO `country_i18n` VALUES("26","fr_FR","Bolivie","","",""); -INSERT INTO `country_i18n` VALUES("27","de_DE","Bosnien Herzegovina","","",""); -INSERT INTO `country_i18n` VALUES("27","en_US","Bosnia and Herzegovina","","",""); -INSERT INTO `country_i18n` VALUES("27","es_ES","Bosnia y Herzegovina","","",""); -INSERT INTO `country_i18n` VALUES("27","fr_FR","Bosnie-Herzégovine","","",""); -INSERT INTO `country_i18n` VALUES("28","de_DE","Botswana","","",""); -INSERT INTO `country_i18n` VALUES("28","en_US","Botswana","","",""); -INSERT INTO `country_i18n` VALUES("28","es_ES","Botswana","","",""); -INSERT INTO `country_i18n` VALUES("28","fr_FR","Botswana","","",""); -INSERT INTO `country_i18n` VALUES("29","de_DE","Brasilien","","",""); -INSERT INTO `country_i18n` VALUES("29","en_US","Brazil","","",""); -INSERT INTO `country_i18n` VALUES("29","es_ES","Brasil","","",""); -INSERT INTO `country_i18n` VALUES("29","fr_FR","Brésil","","",""); -INSERT INTO `country_i18n` VALUES("30","de_DE","Brunei","","",""); -INSERT INTO `country_i18n` VALUES("30","en_US","Brunei","","",""); -INSERT INTO `country_i18n` VALUES("30","es_ES","Brunei","","",""); -INSERT INTO `country_i18n` VALUES("30","fr_FR","Brunei","","",""); -INSERT INTO `country_i18n` VALUES("31","de_DE","Bulgarien","","",""); -INSERT INTO `country_i18n` VALUES("31","en_US","Bulgaria","","",""); -INSERT INTO `country_i18n` VALUES("31","es_ES","Bulgaria","","",""); -INSERT INTO `country_i18n` VALUES("31","fr_FR","Bulgarie","","",""); -INSERT INTO `country_i18n` VALUES("32","de_DE","Burkina Faso","","",""); -INSERT INTO `country_i18n` VALUES("32","en_US","Burkina","","",""); -INSERT INTO `country_i18n` VALUES("32","es_ES","Burkina","","",""); -INSERT INTO `country_i18n` VALUES("32","fr_FR","Burkina","","",""); -INSERT INTO `country_i18n` VALUES("33","de_DE","Burundi","","",""); -INSERT INTO `country_i18n` VALUES("33","en_US","Burundi","","",""); -INSERT INTO `country_i18n` VALUES("33","es_ES","Burundi","","",""); -INSERT INTO `country_i18n` VALUES("33","fr_FR","Burundi","","",""); -INSERT INTO `country_i18n` VALUES("34","de_DE","Kambodscha","","",""); -INSERT INTO `country_i18n` VALUES("34","en_US","Cambodia","","",""); -INSERT INTO `country_i18n` VALUES("34","es_ES","Camboya","","",""); -INSERT INTO `country_i18n` VALUES("34","fr_FR","Cambodge","","",""); -INSERT INTO `country_i18n` VALUES("35","de_DE","Kamerun","","",""); -INSERT INTO `country_i18n` VALUES("35","en_US","Cameroon","","",""); -INSERT INTO `country_i18n` VALUES("35","es_ES","Camerún","","",""); -INSERT INTO `country_i18n` VALUES("35","fr_FR","Cameroun","","",""); -INSERT INTO `country_i18n` VALUES("37","de_DE","Kap Verde","","",""); -INSERT INTO `country_i18n` VALUES("37","en_US","Cape Verde","","",""); -INSERT INTO `country_i18n` VALUES("37","es_ES","Cabo Verde","","",""); -INSERT INTO `country_i18n` VALUES("37","fr_FR","Cap-Vert","","",""); -INSERT INTO `country_i18n` VALUES("38","de_DE","Chile","","",""); -INSERT INTO `country_i18n` VALUES("38","en_US","Chile","","",""); -INSERT INTO `country_i18n` VALUES("38","es_ES","Chile","","",""); -INSERT INTO `country_i18n` VALUES("38","fr_FR","Chili","","",""); -INSERT INTO `country_i18n` VALUES("39","de_DE","China","","",""); -INSERT INTO `country_i18n` VALUES("39","en_US","China","","",""); -INSERT INTO `country_i18n` VALUES("39","es_ES","China","","",""); -INSERT INTO `country_i18n` VALUES("39","fr_FR","Chine","","",""); -INSERT INTO `country_i18n` VALUES("40","de_DE","Zypern","","",""); -INSERT INTO `country_i18n` VALUES("40","en_US","Cyprus","","",""); -INSERT INTO `country_i18n` VALUES("40","es_ES","Chipre","","",""); -INSERT INTO `country_i18n` VALUES("40","fr_FR","Chypre","","",""); -INSERT INTO `country_i18n` VALUES("41","de_DE","Kolumbien","","",""); -INSERT INTO `country_i18n` VALUES("41","en_US","Colombia","","",""); -INSERT INTO `country_i18n` VALUES("41","es_ES","Colombia","","",""); -INSERT INTO `country_i18n` VALUES("41","fr_FR","Colombie","","",""); -INSERT INTO `country_i18n` VALUES("42","de_DE","Komoren","","",""); -INSERT INTO `country_i18n` VALUES("42","en_US","Comoros","","",""); -INSERT INTO `country_i18n` VALUES("42","es_ES","Comoras","","",""); -INSERT INTO `country_i18n` VALUES("42","fr_FR","Comores","","",""); -INSERT INTO `country_i18n` VALUES("43","de_DE","Kongo","","",""); -INSERT INTO `country_i18n` VALUES("43","en_US","Congo","","",""); -INSERT INTO `country_i18n` VALUES("43","es_ES","Congo","","",""); -INSERT INTO `country_i18n` VALUES("43","fr_FR","Congo","","",""); -INSERT INTO `country_i18n` VALUES("44","de_DE","Cookinseln","","",""); -INSERT INTO `country_i18n` VALUES("44","en_US","Cook Islands","","",""); -INSERT INTO `country_i18n` VALUES("44","es_ES","Cook","","",""); -INSERT INTO `country_i18n` VALUES("44","fr_FR","Cook","","",""); -INSERT INTO `country_i18n` VALUES("45","de_DE","Nordkorea","","",""); -INSERT INTO `country_i18n` VALUES("45","en_US","North Korea","","",""); -INSERT INTO `country_i18n` VALUES("45","es_ES","Corea del Norte","","",""); -INSERT INTO `country_i18n` VALUES("45","fr_FR","Corée du Nord","","",""); -INSERT INTO `country_i18n` VALUES("46","de_DE","Südkorea","","",""); -INSERT INTO `country_i18n` VALUES("46","en_US","South Korea","","",""); -INSERT INTO `country_i18n` VALUES("46","es_ES","Corea del Sur","","",""); -INSERT INTO `country_i18n` VALUES("46","fr_FR","Corée du Sud","","",""); -INSERT INTO `country_i18n` VALUES("47","de_DE","Costa Rica","","",""); -INSERT INTO `country_i18n` VALUES("47","en_US","Costa Rica","","",""); -INSERT INTO `country_i18n` VALUES("47","es_ES","Costa Rica","","",""); -INSERT INTO `country_i18n` VALUES("47","fr_FR","Costa Rica","","",""); -INSERT INTO `country_i18n` VALUES("48","de_DE","Elfenbeinküste","","",""); -INSERT INTO `country_i18n` VALUES("48","en_US","Ivory Coast","","",""); -INSERT INTO `country_i18n` VALUES("48","es_ES","Costa de Marfil","","",""); -INSERT INTO `country_i18n` VALUES("48","fr_FR","Côte dIvoire","","",""); -INSERT INTO `country_i18n` VALUES("49","de_DE","Kroatien","","",""); -INSERT INTO `country_i18n` VALUES("49","en_US","Croatia","","",""); -INSERT INTO `country_i18n` VALUES("49","es_ES","Croacia","","",""); -INSERT INTO `country_i18n` VALUES("49","fr_FR","Croatie","","",""); -INSERT INTO `country_i18n` VALUES("50","de_DE","Kuba","","",""); -INSERT INTO `country_i18n` VALUES("50","en_US","Cuba","","",""); -INSERT INTO `country_i18n` VALUES("50","es_ES","Cuba","","",""); -INSERT INTO `country_i18n` VALUES("50","fr_FR","Cuba","","",""); -INSERT INTO `country_i18n` VALUES("51","de_DE","Dänemark","","",""); -INSERT INTO `country_i18n` VALUES("51","en_US","Denmark","","",""); -INSERT INTO `country_i18n` VALUES("51","es_ES","Dinamarca","","",""); -INSERT INTO `country_i18n` VALUES("51","fr_FR","Danemark","","",""); -INSERT INTO `country_i18n` VALUES("52","de_DE","Djibuti","","",""); -INSERT INTO `country_i18n` VALUES("52","en_US","Djibouti","","",""); -INSERT INTO `country_i18n` VALUES("52","es_ES","Djibouti","","",""); -INSERT INTO `country_i18n` VALUES("52","fr_FR","Djibouti","","",""); -INSERT INTO `country_i18n` VALUES("53","de_DE","Dominikanische Republik","","",""); -INSERT INTO `country_i18n` VALUES("53","en_US","Dominica","","",""); -INSERT INTO `country_i18n` VALUES("53","es_ES","Dominica","","",""); -INSERT INTO `country_i18n` VALUES("53","fr_FR","Dominique","","",""); -INSERT INTO `country_i18n` VALUES("54","de_DE","Ägypten","","",""); -INSERT INTO `country_i18n` VALUES("54","en_US","Egypt","","",""); -INSERT INTO `country_i18n` VALUES("54","es_ES","Egipto","","",""); -INSERT INTO `country_i18n` VALUES("54","fr_FR","Égypte","","",""); -INSERT INTO `country_i18n` VALUES("55","de_DE","Vereinigte Arabische Emirate","","",""); -INSERT INTO `country_i18n` VALUES("55","en_US","United Arab Emirates","","",""); -INSERT INTO `country_i18n` VALUES("55","es_ES","Emiratos Árabes Unidos","","",""); -INSERT INTO `country_i18n` VALUES("55","fr_FR","Émirats arabes unis","","",""); -INSERT INTO `country_i18n` VALUES("56","de_DE","Ecuador","","",""); -INSERT INTO `country_i18n` VALUES("56","en_US","Ecuador","","",""); -INSERT INTO `country_i18n` VALUES("56","es_ES","Ecuador","","",""); -INSERT INTO `country_i18n` VALUES("56","fr_FR","Équateur","","",""); -INSERT INTO `country_i18n` VALUES("57","de_DE","Eritrea","","",""); -INSERT INTO `country_i18n` VALUES("57","en_US","Eritrea","","",""); -INSERT INTO `country_i18n` VALUES("57","es_ES","Eritrea","","",""); -INSERT INTO `country_i18n` VALUES("57","fr_FR","Érythrée","","",""); -INSERT INTO `country_i18n` VALUES("58","de_DE","Spanien","","",""); -INSERT INTO `country_i18n` VALUES("58","en_US","Spain","","",""); -INSERT INTO `country_i18n` VALUES("58","es_ES","España","","",""); -INSERT INTO `country_i18n` VALUES("58","fr_FR","Espagne","","",""); -INSERT INTO `country_i18n` VALUES("59","de_DE","Estland","","",""); -INSERT INTO `country_i18n` VALUES("59","en_US","Estonia","","",""); -INSERT INTO `country_i18n` VALUES("59","es_ES","Estonia","","",""); -INSERT INTO `country_i18n` VALUES("59","fr_FR","Estonie","","",""); -INSERT INTO `country_i18n` VALUES("61","de_DE","Äthiopien","","",""); -INSERT INTO `country_i18n` VALUES("61","en_US","Ethiopia","","",""); -INSERT INTO `country_i18n` VALUES("61","es_ES","Etiopía","","",""); -INSERT INTO `country_i18n` VALUES("61","fr_FR","Éthiopie","","",""); -INSERT INTO `country_i18n` VALUES("62","de_DE","Fiji","","",""); -INSERT INTO `country_i18n` VALUES("62","en_US","Fiji","","",""); -INSERT INTO `country_i18n` VALUES("62","es_ES","Fiji","","",""); -INSERT INTO `country_i18n` VALUES("62","fr_FR","Fidji","","",""); -INSERT INTO `country_i18n` VALUES("63","de_DE","Finnland","","",""); -INSERT INTO `country_i18n` VALUES("63","en_US","Finland","","",""); -INSERT INTO `country_i18n` VALUES("63","es_ES","Finlandia","","",""); -INSERT INTO `country_i18n` VALUES("63","fr_FR","Finlande","","",""); -INSERT INTO `country_i18n` VALUES("64","de_DE","Frankreich","","",""); -INSERT INTO `country_i18n` VALUES("64","en_US","France metropolitan","","",""); -INSERT INTO `country_i18n` VALUES("64","es_ES","Francia","","",""); -INSERT INTO `country_i18n` VALUES("64","fr_FR","France métropolitaine","","",""); -INSERT INTO `country_i18n` VALUES("65","de_DE","Gabun","","",""); -INSERT INTO `country_i18n` VALUES("65","en_US","Gabon","","",""); -INSERT INTO `country_i18n` VALUES("65","es_ES","Gabón","","",""); -INSERT INTO `country_i18n` VALUES("65","fr_FR","Gabon","","",""); -INSERT INTO `country_i18n` VALUES("66","de_DE","Gambie","","",""); -INSERT INTO `country_i18n` VALUES("66","en_US","Gambia","","",""); -INSERT INTO `country_i18n` VALUES("66","es_ES","Gambia","","",""); -INSERT INTO `country_i18n` VALUES("66","fr_FR","Gambie","","",""); -INSERT INTO `country_i18n` VALUES("67","de_DE","Georgien","","",""); -INSERT INTO `country_i18n` VALUES("67","en_US","Georgia","","",""); -INSERT INTO `country_i18n` VALUES("67","es_ES","Georgia","","",""); -INSERT INTO `country_i18n` VALUES("67","fr_FR","Géorgie","","",""); -INSERT INTO `country_i18n` VALUES("68","de_DE","Ghana","","",""); -INSERT INTO `country_i18n` VALUES("68","en_US","Ghana","","",""); -INSERT INTO `country_i18n` VALUES("68","es_ES","Ghana","","",""); -INSERT INTO `country_i18n` VALUES("68","fr_FR","Ghana","","",""); -INSERT INTO `country_i18n` VALUES("69","de_DE","Griechenland","","",""); -INSERT INTO `country_i18n` VALUES("69","en_US","Greece","","",""); -INSERT INTO `country_i18n` VALUES("69","es_ES","Grecia","","",""); -INSERT INTO `country_i18n` VALUES("69","fr_FR","Grèce","","",""); -INSERT INTO `country_i18n` VALUES("70","de_DE","Grenada","","",""); -INSERT INTO `country_i18n` VALUES("70","en_US","Grenada","","",""); -INSERT INTO `country_i18n` VALUES("70","es_ES","Granada","","",""); -INSERT INTO `country_i18n` VALUES("70","fr_FR","Grenade","","",""); -INSERT INTO `country_i18n` VALUES("71","de_DE","Guatemala","","",""); -INSERT INTO `country_i18n` VALUES("71","en_US","Guatemala","","",""); -INSERT INTO `country_i18n` VALUES("71","es_ES","Guatemala","","",""); -INSERT INTO `country_i18n` VALUES("71","fr_FR","Guatemala","","",""); -INSERT INTO `country_i18n` VALUES("72","de_DE","Guinea","","",""); -INSERT INTO `country_i18n` VALUES("72","en_US","Guinea","","",""); -INSERT INTO `country_i18n` VALUES("72","es_ES","Guinea","","",""); -INSERT INTO `country_i18n` VALUES("72","fr_FR","Guinée","","",""); -INSERT INTO `country_i18n` VALUES("73","de_DE","Guinea-Bissau","","",""); -INSERT INTO `country_i18n` VALUES("73","en_US","Guinea-Bissau","","",""); -INSERT INTO `country_i18n` VALUES("73","es_ES","Guinea-Bissau","","",""); -INSERT INTO `country_i18n` VALUES("73","fr_FR","Guinée-Bissao","","",""); -INSERT INTO `country_i18n` VALUES("74","de_DE","Äquatorialguinea","","",""); -INSERT INTO `country_i18n` VALUES("74","en_US","Equatorial Guinea","","",""); -INSERT INTO `country_i18n` VALUES("74","es_ES","Guinea Ecuatorial","","",""); -INSERT INTO `country_i18n` VALUES("74","fr_FR","Guinée équatoriale","","",""); -INSERT INTO `country_i18n` VALUES("75","de_DE","Guyana","","",""); -INSERT INTO `country_i18n` VALUES("75","en_US","Guyana","","",""); -INSERT INTO `country_i18n` VALUES("75","es_ES","Guyana","","",""); -INSERT INTO `country_i18n` VALUES("75","fr_FR","Guyane","","",""); -INSERT INTO `country_i18n` VALUES("76","de_DE","Haiti","","",""); -INSERT INTO `country_i18n` VALUES("76","en_US","Haiti","","",""); -INSERT INTO `country_i18n` VALUES("76","es_ES","Haití","","",""); -INSERT INTO `country_i18n` VALUES("76","fr_FR","Haïti","","",""); -INSERT INTO `country_i18n` VALUES("77","de_DE","Honduras","","",""); -INSERT INTO `country_i18n` VALUES("77","en_US","Honduras","","",""); -INSERT INTO `country_i18n` VALUES("77","es_ES","Honduras","","",""); -INSERT INTO `country_i18n` VALUES("77","fr_FR","Honduras","","",""); -INSERT INTO `country_i18n` VALUES("78","de_DE","Ungarn","","",""); -INSERT INTO `country_i18n` VALUES("78","en_US","Hungary","","",""); -INSERT INTO `country_i18n` VALUES("78","es_ES","Hungría","","",""); -INSERT INTO `country_i18n` VALUES("78","fr_FR","Hongrie","","",""); -INSERT INTO `country_i18n` VALUES("79","de_DE","Indien","","",""); -INSERT INTO `country_i18n` VALUES("79","en_US","India","","",""); -INSERT INTO `country_i18n` VALUES("79","es_ES","India","","",""); -INSERT INTO `country_i18n` VALUES("79","fr_FR","Inde","","",""); -INSERT INTO `country_i18n` VALUES("80","de_DE","Indonesien","","",""); -INSERT INTO `country_i18n` VALUES("80","en_US","Indonesia","","",""); -INSERT INTO `country_i18n` VALUES("80","es_ES","Indonesia","","",""); -INSERT INTO `country_i18n` VALUES("80","fr_FR","Indonésie","","",""); -INSERT INTO `country_i18n` VALUES("81","de_DE","Iran","","",""); -INSERT INTO `country_i18n` VALUES("81","en_US","Iran","","",""); -INSERT INTO `country_i18n` VALUES("81","es_ES","Irán","","",""); -INSERT INTO `country_i18n` VALUES("81","fr_FR","Iran","","",""); -INSERT INTO `country_i18n` VALUES("82","de_DE","Irak","","",""); -INSERT INTO `country_i18n` VALUES("82","en_US","Iraq","","",""); -INSERT INTO `country_i18n` VALUES("82","es_ES","Iraq","","",""); -INSERT INTO `country_i18n` VALUES("82","fr_FR","Iraq","","",""); -INSERT INTO `country_i18n` VALUES("83","de_DE","Irland","","",""); -INSERT INTO `country_i18n` VALUES("83","en_US","Ireland","","",""); -INSERT INTO `country_i18n` VALUES("83","es_ES","Irlanda","","",""); -INSERT INTO `country_i18n` VALUES("83","fr_FR","Irlande","","",""); -INSERT INTO `country_i18n` VALUES("84","de_DE","Island","","",""); -INSERT INTO `country_i18n` VALUES("84","en_US","Iceland","","",""); -INSERT INTO `country_i18n` VALUES("84","es_ES","Islandia","","",""); -INSERT INTO `country_i18n` VALUES("84","fr_FR","Islande","","",""); -INSERT INTO `country_i18n` VALUES("85","de_DE","Israel","","",""); -INSERT INTO `country_i18n` VALUES("85","en_US","Israel","","",""); -INSERT INTO `country_i18n` VALUES("85","es_ES","Israel","","",""); -INSERT INTO `country_i18n` VALUES("85","fr_FR","Israël","","",""); -INSERT INTO `country_i18n` VALUES("86","de_DE","Italien","","",""); -INSERT INTO `country_i18n` VALUES("86","en_US","Italy","","",""); -INSERT INTO `country_i18n` VALUES("86","es_ES","Italia","","",""); -INSERT INTO `country_i18n` VALUES("86","fr_FR","Italie","","",""); -INSERT INTO `country_i18n` VALUES("87","de_DE","Jamaika","","",""); -INSERT INTO `country_i18n` VALUES("87","en_US","Jamaica","","",""); -INSERT INTO `country_i18n` VALUES("87","es_ES","Jamaica","","",""); -INSERT INTO `country_i18n` VALUES("87","fr_FR","Jamaïque","","",""); -INSERT INTO `country_i18n` VALUES("88","de_DE","Japan","","",""); -INSERT INTO `country_i18n` VALUES("88","en_US","Japan","","",""); -INSERT INTO `country_i18n` VALUES("88","es_ES","Japón","","",""); -INSERT INTO `country_i18n` VALUES("88","fr_FR","Japon","","",""); -INSERT INTO `country_i18n` VALUES("89","de_DE","Jordanien","","",""); -INSERT INTO `country_i18n` VALUES("89","en_US","Jordan","","",""); -INSERT INTO `country_i18n` VALUES("89","es_ES","Jordania","","",""); -INSERT INTO `country_i18n` VALUES("89","fr_FR","Jordanie","","",""); -INSERT INTO `country_i18n` VALUES("90","de_DE","Kasachstan","","",""); -INSERT INTO `country_i18n` VALUES("90","en_US","Kazakhstan","","",""); -INSERT INTO `country_i18n` VALUES("90","es_ES","Kazajstán","","",""); -INSERT INTO `country_i18n` VALUES("90","fr_FR","Kazakhstan","","",""); -INSERT INTO `country_i18n` VALUES("91","de_DE","Kenia","","",""); -INSERT INTO `country_i18n` VALUES("91","en_US","Kenya","","",""); -INSERT INTO `country_i18n` VALUES("91","es_ES","Kenia","","",""); -INSERT INTO `country_i18n` VALUES("91","fr_FR","Kenya","","",""); -INSERT INTO `country_i18n` VALUES("92","de_DE","Kirgisistan","","",""); -INSERT INTO `country_i18n` VALUES("92","en_US","Kyrgyzstan","","",""); -INSERT INTO `country_i18n` VALUES("92","es_ES","Kirguistán","","",""); -INSERT INTO `country_i18n` VALUES("92","fr_FR","Kirghizistan","","",""); -INSERT INTO `country_i18n` VALUES("93","de_DE","Kiribati","","",""); -INSERT INTO `country_i18n` VALUES("93","en_US","Kiribati","","",""); -INSERT INTO `country_i18n` VALUES("93","es_ES","Kiribati","","",""); -INSERT INTO `country_i18n` VALUES("93","fr_FR","Kiribati","","",""); -INSERT INTO `country_i18n` VALUES("94","de_DE","Kuwait","","",""); -INSERT INTO `country_i18n` VALUES("94","en_US","Kuwait","","",""); -INSERT INTO `country_i18n` VALUES("94","es_ES","Kuwait","","",""); -INSERT INTO `country_i18n` VALUES("94","fr_FR","Koweït","","",""); -INSERT INTO `country_i18n` VALUES("95","de_DE","Laos","","",""); -INSERT INTO `country_i18n` VALUES("95","en_US","Laos","","",""); -INSERT INTO `country_i18n` VALUES("95","es_ES","Laos","","",""); -INSERT INTO `country_i18n` VALUES("95","fr_FR","Laos","","",""); -INSERT INTO `country_i18n` VALUES("96","de_DE","Lesotho","","",""); -INSERT INTO `country_i18n` VALUES("96","en_US","Lesotho","","",""); -INSERT INTO `country_i18n` VALUES("96","es_ES","Lesoto","","",""); -INSERT INTO `country_i18n` VALUES("96","fr_FR","Lesotho","","",""); -INSERT INTO `country_i18n` VALUES("97","de_DE","Lettland","","",""); -INSERT INTO `country_i18n` VALUES("97","en_US","Latvia","","",""); -INSERT INTO `country_i18n` VALUES("97","es_ES","Letonia","","",""); -INSERT INTO `country_i18n` VALUES("97","fr_FR","Lettonie","","",""); -INSERT INTO `country_i18n` VALUES("98","de_DE","Libanon","","",""); -INSERT INTO `country_i18n` VALUES("98","en_US","Lebanon","","",""); -INSERT INTO `country_i18n` VALUES("98","es_ES","Líbano","","",""); -INSERT INTO `country_i18n` VALUES("98","fr_FR","Liban","","",""); -INSERT INTO `country_i18n` VALUES("99","de_DE","Liberia","","",""); -INSERT INTO `country_i18n` VALUES("99","en_US","Liberia","","",""); -INSERT INTO `country_i18n` VALUES("99","es_ES","Liberia","","",""); -INSERT INTO `country_i18n` VALUES("99","fr_FR","Liberia","","",""); -INSERT INTO `country_i18n` VALUES("100","de_DE","Libyen","","",""); -INSERT INTO `country_i18n` VALUES("100","en_US","Libya","","",""); -INSERT INTO `country_i18n` VALUES("100","es_ES","Libia","","",""); -INSERT INTO `country_i18n` VALUES("100","fr_FR","Libye","","",""); -INSERT INTO `country_i18n` VALUES("101","de_DE","Liechtenstein","","",""); -INSERT INTO `country_i18n` VALUES("101","en_US","Liechtenstein","","",""); -INSERT INTO `country_i18n` VALUES("101","es_ES","Liechtenstein","","",""); -INSERT INTO `country_i18n` VALUES("101","fr_FR","Liechtenstein","","",""); -INSERT INTO `country_i18n` VALUES("102","de_DE","Litauen","","",""); -INSERT INTO `country_i18n` VALUES("102","en_US","Lithuania","","",""); -INSERT INTO `country_i18n` VALUES("102","es_ES","Lituania","","",""); -INSERT INTO `country_i18n` VALUES("102","fr_FR","Lituanie","","",""); -INSERT INTO `country_i18n` VALUES("103","de_DE","Luxemburg","","",""); -INSERT INTO `country_i18n` VALUES("103","en_US","Luxembourg","","",""); -INSERT INTO `country_i18n` VALUES("103","es_ES","Luxemburgo","","",""); -INSERT INTO `country_i18n` VALUES("103","fr_FR","Luxembourg","","",""); -INSERT INTO `country_i18n` VALUES("104","de_DE","Mazedonien","","",""); -INSERT INTO `country_i18n` VALUES("104","en_US","Macedonia","","",""); -INSERT INTO `country_i18n` VALUES("104","es_ES","Macedonia","","",""); -INSERT INTO `country_i18n` VALUES("104","fr_FR","Macédoine","","",""); -INSERT INTO `country_i18n` VALUES("105","de_DE","Madagaskar","","",""); -INSERT INTO `country_i18n` VALUES("105","en_US","Madagascar","","",""); -INSERT INTO `country_i18n` VALUES("105","es_ES","Madagascar","","",""); -INSERT INTO `country_i18n` VALUES("105","fr_FR","Madagascar","","",""); -INSERT INTO `country_i18n` VALUES("106","de_DE","Malaysien","","",""); -INSERT INTO `country_i18n` VALUES("106","en_US","Malaysia","","",""); -INSERT INTO `country_i18n` VALUES("106","es_ES","Malasia","","",""); -INSERT INTO `country_i18n` VALUES("106","fr_FR","Malaisie","","",""); -INSERT INTO `country_i18n` VALUES("107","de_DE","Malawi","","",""); -INSERT INTO `country_i18n` VALUES("107","en_US","Malawi","","",""); -INSERT INTO `country_i18n` VALUES("107","es_ES","Malawi","","",""); -INSERT INTO `country_i18n` VALUES("107","fr_FR","Malawi","","",""); -INSERT INTO `country_i18n` VALUES("108","de_DE","Malediven","","",""); -INSERT INTO `country_i18n` VALUES("108","en_US","Maldives","","",""); -INSERT INTO `country_i18n` VALUES("108","es_ES","Maldivas","","",""); -INSERT INTO `country_i18n` VALUES("108","fr_FR","Maldives","","",""); -INSERT INTO `country_i18n` VALUES("109","de_DE","Mali","","",""); -INSERT INTO `country_i18n` VALUES("109","en_US","Mali","","",""); -INSERT INTO `country_i18n` VALUES("109","es_ES","Malí","","",""); -INSERT INTO `country_i18n` VALUES("109","fr_FR","Mali","","",""); -INSERT INTO `country_i18n` VALUES("110","de_DE","Malta","","",""); -INSERT INTO `country_i18n` VALUES("110","en_US","Malta","","",""); -INSERT INTO `country_i18n` VALUES("110","es_ES","Malta","","",""); -INSERT INTO `country_i18n` VALUES("110","fr_FR","Malte","","",""); -INSERT INTO `country_i18n` VALUES("111","de_DE","Marokko","","",""); -INSERT INTO `country_i18n` VALUES("111","en_US","Morocco","","",""); -INSERT INTO `country_i18n` VALUES("111","es_ES","Marruecos","","",""); -INSERT INTO `country_i18n` VALUES("111","fr_FR","Maroc","","",""); -INSERT INTO `country_i18n` VALUES("112","de_DE","Marshallinseln","","",""); -INSERT INTO `country_i18n` VALUES("112","en_US","Marshall Islands","","",""); -INSERT INTO `country_i18n` VALUES("112","es_ES","Marshall","","",""); -INSERT INTO `country_i18n` VALUES("112","fr_FR","Marshall","","",""); -INSERT INTO `country_i18n` VALUES("113","de_DE","Mauritius","","",""); -INSERT INTO `country_i18n` VALUES("113","en_US","Mauritius","","",""); -INSERT INTO `country_i18n` VALUES("113","es_ES","Mauricio","","",""); -INSERT INTO `country_i18n` VALUES("113","fr_FR","Maurice","","",""); -INSERT INTO `country_i18n` VALUES("114","de_DE","Mauretanien","","",""); -INSERT INTO `country_i18n` VALUES("114","en_US","Mauritania","","",""); -INSERT INTO `country_i18n` VALUES("114","es_ES","Mauritania","","",""); -INSERT INTO `country_i18n` VALUES("114","fr_FR","Mauritanie","","",""); -INSERT INTO `country_i18n` VALUES("115","de_DE","Mexiko","","",""); -INSERT INTO `country_i18n` VALUES("115","en_US","Mexico","","",""); -INSERT INTO `country_i18n` VALUES("115","es_ES","Méjico","","",""); -INSERT INTO `country_i18n` VALUES("115","fr_FR","Mexique","","",""); -INSERT INTO `country_i18n` VALUES("116","de_DE","Mikronesien","","",""); -INSERT INTO `country_i18n` VALUES("116","en_US","Micronesia","","",""); -INSERT INTO `country_i18n` VALUES("116","es_ES","Micronesia","","",""); -INSERT INTO `country_i18n` VALUES("116","fr_FR","Micronésie","","",""); -INSERT INTO `country_i18n` VALUES("117","de_DE","Moldau","","",""); -INSERT INTO `country_i18n` VALUES("117","en_US","Moldova","","",""); -INSERT INTO `country_i18n` VALUES("117","es_ES","Moldova","","",""); -INSERT INTO `country_i18n` VALUES("117","fr_FR","Moldavie","","",""); -INSERT INTO `country_i18n` VALUES("118","de_DE","Monaco","","",""); -INSERT INTO `country_i18n` VALUES("118","en_US","Monaco","","",""); -INSERT INTO `country_i18n` VALUES("118","es_ES","Mónaco","","",""); -INSERT INTO `country_i18n` VALUES("118","fr_FR","Principauté de Monaco","","",""); -INSERT INTO `country_i18n` VALUES("119","de_DE","Mongolei","","",""); -INSERT INTO `country_i18n` VALUES("119","en_US","Mongolia","","",""); -INSERT INTO `country_i18n` VALUES("119","es_ES","Mongolia","","",""); -INSERT INTO `country_i18n` VALUES("119","fr_FR","Mongolie","","",""); -INSERT INTO `country_i18n` VALUES("120","de_DE","Mosambik","","",""); -INSERT INTO `country_i18n` VALUES("120","en_US","Mozambique","","",""); -INSERT INTO `country_i18n` VALUES("120","es_ES","Mozambique","","",""); -INSERT INTO `country_i18n` VALUES("120","fr_FR","Mozambique","","",""); -INSERT INTO `country_i18n` VALUES("121","de_DE","Namibia","","",""); -INSERT INTO `country_i18n` VALUES("121","en_US","Namibia","","",""); -INSERT INTO `country_i18n` VALUES("121","es_ES","Namibia","","",""); -INSERT INTO `country_i18n` VALUES("121","fr_FR","Namibie","","",""); -INSERT INTO `country_i18n` VALUES("122","de_DE","Nauru","","",""); -INSERT INTO `country_i18n` VALUES("122","en_US","Nauru","","",""); -INSERT INTO `country_i18n` VALUES("122","es_ES","Nauru","","",""); -INSERT INTO `country_i18n` VALUES("122","fr_FR","Nauru","","",""); -INSERT INTO `country_i18n` VALUES("123","de_DE","Nepal","","",""); -INSERT INTO `country_i18n` VALUES("123","en_US","Nepal","","",""); -INSERT INTO `country_i18n` VALUES("123","es_ES","Nepal","","",""); -INSERT INTO `country_i18n` VALUES("123","fr_FR","Népal","","",""); -INSERT INTO `country_i18n` VALUES("124","de_DE","Nicaragua","","",""); -INSERT INTO `country_i18n` VALUES("124","en_US","Nicaragua","","",""); -INSERT INTO `country_i18n` VALUES("124","es_ES","Nicaragua","","",""); -INSERT INTO `country_i18n` VALUES("124","fr_FR","Nicaragua","","",""); -INSERT INTO `country_i18n` VALUES("125","de_DE","Niger","","",""); -INSERT INTO `country_i18n` VALUES("125","en_US","Niger","","",""); -INSERT INTO `country_i18n` VALUES("125","es_ES","Níger","","",""); -INSERT INTO `country_i18n` VALUES("125","fr_FR","Niger","","",""); -INSERT INTO `country_i18n` VALUES("126","de_DE","Nigeria","","",""); -INSERT INTO `country_i18n` VALUES("126","en_US","Nigeria","","",""); -INSERT INTO `country_i18n` VALUES("126","es_ES","Nigeria","","",""); -INSERT INTO `country_i18n` VALUES("126","fr_FR","Nigeria","","",""); -INSERT INTO `country_i18n` VALUES("127","de_DE","Niue","","",""); -INSERT INTO `country_i18n` VALUES("127","en_US","Niue","","",""); -INSERT INTO `country_i18n` VALUES("127","es_ES","Niue","","",""); -INSERT INTO `country_i18n` VALUES("127","fr_FR","Niue","","",""); -INSERT INTO `country_i18n` VALUES("128","de_DE","Norwegen","","",""); -INSERT INTO `country_i18n` VALUES("128","en_US","Norway","","",""); -INSERT INTO `country_i18n` VALUES("128","es_ES","Noruega","","",""); -INSERT INTO `country_i18n` VALUES("128","fr_FR","Norvège","","",""); -INSERT INTO `country_i18n` VALUES("129","de_DE","Neuseeland","","",""); -INSERT INTO `country_i18n` VALUES("129","en_US","New Zealand","","",""); -INSERT INTO `country_i18n` VALUES("129","es_ES","Nueva Zelandia","","",""); -INSERT INTO `country_i18n` VALUES("129","fr_FR","Nouvelle-Zélande","","",""); -INSERT INTO `country_i18n` VALUES("130","de_DE","Oman","","",""); -INSERT INTO `country_i18n` VALUES("130","en_US","Oman","","",""); -INSERT INTO `country_i18n` VALUES("130","es_ES","Omán","","",""); -INSERT INTO `country_i18n` VALUES("130","fr_FR","Oman","","",""); -INSERT INTO `country_i18n` VALUES("131","de_DE","Uganda","","",""); -INSERT INTO `country_i18n` VALUES("131","en_US","Uganda","","",""); -INSERT INTO `country_i18n` VALUES("131","es_ES","","","",""); -INSERT INTO `country_i18n` VALUES("131","fr_FR","Ouganda","","",""); -INSERT INTO `country_i18n` VALUES("132","de_DE","Usbekistan","","",""); -INSERT INTO `country_i18n` VALUES("132","en_US","Uzbekistan","","",""); -INSERT INTO `country_i18n` VALUES("132","es_ES","Uzbekistán","","",""); -INSERT INTO `country_i18n` VALUES("132","fr_FR","Ouzbékistan","","",""); -INSERT INTO `country_i18n` VALUES("133","de_DE","Pakistan","","",""); -INSERT INTO `country_i18n` VALUES("133","en_US","Pakistan","","",""); -INSERT INTO `country_i18n` VALUES("133","es_ES","Pakistán","","",""); -INSERT INTO `country_i18n` VALUES("133","fr_FR","Pakistan","","",""); -INSERT INTO `country_i18n` VALUES("134","de_DE","Panama","","",""); -INSERT INTO `country_i18n` VALUES("134","en_US","Panama","","",""); -INSERT INTO `country_i18n` VALUES("134","es_ES","Panamá","","",""); -INSERT INTO `country_i18n` VALUES("134","fr_FR","Panama","","",""); -INSERT INTO `country_i18n` VALUES("135","de_DE","Papua-Neuguinea","","",""); -INSERT INTO `country_i18n` VALUES("135","en_US","Papua Nueva Guinea","","",""); -INSERT INTO `country_i18n` VALUES("135","es_ES","Papua Nueva Guinea","","",""); -INSERT INTO `country_i18n` VALUES("135","fr_FR","Papouasie","","",""); -INSERT INTO `country_i18n` VALUES("136","de_DE","Paraguay","","",""); -INSERT INTO `country_i18n` VALUES("136","en_US","Paraguay","","",""); -INSERT INTO `country_i18n` VALUES("136","es_ES","Paraguay","","",""); -INSERT INTO `country_i18n` VALUES("136","fr_FR","Paraguay","","",""); -INSERT INTO `country_i18n` VALUES("137","de_DE","Niederlande","","",""); -INSERT INTO `country_i18n` VALUES("137","en_US","Netherlands","","",""); -INSERT INTO `country_i18n` VALUES("137","es_ES","Países Bajos","","",""); -INSERT INTO `country_i18n` VALUES("137","fr_FR","Pays-Bas","","",""); -INSERT INTO `country_i18n` VALUES("138","de_DE","Peru","","",""); -INSERT INTO `country_i18n` VALUES("138","en_US","Peru","","",""); -INSERT INTO `country_i18n` VALUES("138","es_ES","Perú","","",""); -INSERT INTO `country_i18n` VALUES("138","fr_FR","Pérou","","",""); -INSERT INTO `country_i18n` VALUES("139","de_DE","Philippinen","","",""); -INSERT INTO `country_i18n` VALUES("139","en_US","Philippines","","",""); -INSERT INTO `country_i18n` VALUES("139","es_ES","Filipinas","","",""); -INSERT INTO `country_i18n` VALUES("139","fr_FR","Philippines","","",""); -INSERT INTO `country_i18n` VALUES("140","de_DE","Polen","","",""); -INSERT INTO `country_i18n` VALUES("140","en_US","Poland","","",""); -INSERT INTO `country_i18n` VALUES("140","es_ES","Polonia","","",""); -INSERT INTO `country_i18n` VALUES("140","fr_FR","Pologne","","",""); -INSERT INTO `country_i18n` VALUES("141","de_DE","Portugal","","",""); -INSERT INTO `country_i18n` VALUES("141","en_US","Portugal","","",""); -INSERT INTO `country_i18n` VALUES("141","es_ES","Portugal","","",""); -INSERT INTO `country_i18n` VALUES("141","fr_FR","Portugal","","",""); -INSERT INTO `country_i18n` VALUES("142","de_DE","Katar","","",""); -INSERT INTO `country_i18n` VALUES("142","en_US","Qatar","","",""); -INSERT INTO `country_i18n` VALUES("142","es_ES","Qatar","","",""); -INSERT INTO `country_i18n` VALUES("142","fr_FR","Qatar","","",""); -INSERT INTO `country_i18n` VALUES("143","de_DE","Zentralafrikanische Republik","","",""); -INSERT INTO `country_i18n` VALUES("143","en_US","Central African Republic","","",""); -INSERT INTO `country_i18n` VALUES("143","es_ES","República Centroafricana","","",""); -INSERT INTO `country_i18n` VALUES("143","fr_FR","République centrafricaine","","",""); -INSERT INTO `country_i18n` VALUES("144","de_DE","Dominikanische Republik","","",""); -INSERT INTO `country_i18n` VALUES("144","en_US","Dominican Republic","","",""); -INSERT INTO `country_i18n` VALUES("144","es_ES","República Dominicana","","",""); -INSERT INTO `country_i18n` VALUES("144","fr_FR","République dominicaine","","",""); -INSERT INTO `country_i18n` VALUES("145","de_DE","Tschechische Republik","","",""); -INSERT INTO `country_i18n` VALUES("145","en_US","Czech Republic","","",""); -INSERT INTO `country_i18n` VALUES("145","es_ES","República Checa","","",""); -INSERT INTO `country_i18n` VALUES("145","fr_FR","République tchèque","","",""); -INSERT INTO `country_i18n` VALUES("146","de_DE","Rumänien","","",""); -INSERT INTO `country_i18n` VALUES("146","en_US","Romania","","",""); -INSERT INTO `country_i18n` VALUES("146","es_ES","Rumania","","",""); -INSERT INTO `country_i18n` VALUES("146","fr_FR","Roumanie","","",""); -INSERT INTO `country_i18n` VALUES("147","de_DE","Vereinigtes Königreich","","",""); -INSERT INTO `country_i18n` VALUES("147","en_US","United Kingdom","","",""); -INSERT INTO `country_i18n` VALUES("147","es_ES","Reino Unido","","",""); -INSERT INTO `country_i18n` VALUES("147","fr_FR","Royaume-Uni","","",""); -INSERT INTO `country_i18n` VALUES("148","de_DE","Russland","","",""); -INSERT INTO `country_i18n` VALUES("148","en_US","Russia","","",""); -INSERT INTO `country_i18n` VALUES("148","es_ES","Rusia","","",""); -INSERT INTO `country_i18n` VALUES("148","fr_FR","Russie","","",""); -INSERT INTO `country_i18n` VALUES("149","de_DE","Ruanda","","",""); -INSERT INTO `country_i18n` VALUES("149","en_US","Rwanda","","",""); -INSERT INTO `country_i18n` VALUES("149","es_ES","Ruanda","","",""); -INSERT INTO `country_i18n` VALUES("149","fr_FR","Rwanda","","",""); -INSERT INTO `country_i18n` VALUES("150","de_DE","St. Kitts und Nevis","","",""); -INSERT INTO `country_i18n` VALUES("150","en_US","Saint Kitts and Nevis","","",""); -INSERT INTO `country_i18n` VALUES("150","es_ES","San Cristóbal","","",""); -INSERT INTO `country_i18n` VALUES("150","fr_FR","Saint-Christophe-et-Niévès","","",""); -INSERT INTO `country_i18n` VALUES("151","de_DE","St. Lucia","","",""); -INSERT INTO `country_i18n` VALUES("151","en_US","Saint Lucia","","",""); -INSERT INTO `country_i18n` VALUES("151","es_ES","Santa Lucía","","",""); -INSERT INTO `country_i18n` VALUES("151","fr_FR","Sainte-Lucie","","",""); -INSERT INTO `country_i18n` VALUES("152","de_DE","Saint-Marin","","",""); -INSERT INTO `country_i18n` VALUES("152","en_US","San Marino","","",""); -INSERT INTO `country_i18n` VALUES("152","es_ES","San Marino","","",""); -INSERT INTO `country_i18n` VALUES("152","fr_FR","Saint-Marin","","",""); -INSERT INTO `country_i18n` VALUES("153","de_DE","St. Vincent und die Grenadinen","","",""); -INSERT INTO `country_i18n` VALUES("153","en_US","Saint Vincent and the Grenadines","","",""); -INSERT INTO `country_i18n` VALUES("153","es_ES","San Vicente y las Granadinas","","",""); -INSERT INTO `country_i18n` VALUES("153","fr_FR","Saint-Vincent-et-les Grenadines","","",""); -INSERT INTO `country_i18n` VALUES("154","de_DE","Salomon-Inseln","","",""); -INSERT INTO `country_i18n` VALUES("154","en_US","Solomon Islands","","",""); -INSERT INTO `country_i18n` VALUES("154","es_ES","Salomón","","",""); -INSERT INTO `country_i18n` VALUES("154","fr_FR","Salomon","","",""); -INSERT INTO `country_i18n` VALUES("155","de_DE","El Salvador","","",""); -INSERT INTO `country_i18n` VALUES("155","en_US","El Salvador","","",""); -INSERT INTO `country_i18n` VALUES("155","es_ES","El Salvador","","",""); -INSERT INTO `country_i18n` VALUES("155","fr_FR","Salvador","","",""); -INSERT INTO `country_i18n` VALUES("156","de_DE","West-Samoa","","",""); -INSERT INTO `country_i18n` VALUES("156","en_US","Western Samoa","","",""); -INSERT INTO `country_i18n` VALUES("156","es_ES","Samoa","","",""); -INSERT INTO `country_i18n` VALUES("156","fr_FR","Samoa occidentales","","",""); -INSERT INTO `country_i18n` VALUES("157","de_DE","São Tomé und Príncipe","","",""); -INSERT INTO `country_i18n` VALUES("157","en_US","Sao Tome and Principe","","",""); -INSERT INTO `country_i18n` VALUES("157","es_ES","Santo Tomé y Príncipe","","",""); -INSERT INTO `country_i18n` VALUES("157","fr_FR","Sao Tomé-et-Principe","","",""); -INSERT INTO `country_i18n` VALUES("158","de_DE","Senegal","","",""); -INSERT INTO `country_i18n` VALUES("158","en_US","Senegal","","",""); -INSERT INTO `country_i18n` VALUES("158","es_ES","Senegal","","",""); -INSERT INTO `country_i18n` VALUES("158","fr_FR","Sénégal","","",""); -INSERT INTO `country_i18n` VALUES("159","de_DE","Seychellen","","",""); -INSERT INTO `country_i18n` VALUES("159","en_US","Seychelles","","",""); -INSERT INTO `country_i18n` VALUES("159","es_ES","Seychelles","","",""); -INSERT INTO `country_i18n` VALUES("159","fr_FR","Seychelles","","",""); -INSERT INTO `country_i18n` VALUES("160","de_DE","Sierra Leone","","",""); -INSERT INTO `country_i18n` VALUES("160","en_US","Sierra Leone","","",""); -INSERT INTO `country_i18n` VALUES("160","es_ES","Sierra Leona","","",""); -INSERT INTO `country_i18n` VALUES("160","fr_FR","Sierra Léone","","",""); -INSERT INTO `country_i18n` VALUES("161","de_DE","Singapur","","",""); -INSERT INTO `country_i18n` VALUES("161","en_US","Singapore","","",""); -INSERT INTO `country_i18n` VALUES("161","es_ES","Singapur","","",""); -INSERT INTO `country_i18n` VALUES("161","fr_FR","Singapour","","",""); -INSERT INTO `country_i18n` VALUES("162","de_DE","Slowakei","","",""); -INSERT INTO `country_i18n` VALUES("162","en_US","Slovakia","","",""); -INSERT INTO `country_i18n` VALUES("162","es_ES","Eslovaquia","","",""); -INSERT INTO `country_i18n` VALUES("162","fr_FR","Slovaquie","","",""); -INSERT INTO `country_i18n` VALUES("163","de_DE","Slowenien","","",""); -INSERT INTO `country_i18n` VALUES("163","en_US","Slovenia","","",""); -INSERT INTO `country_i18n` VALUES("163","es_ES","Eslovenia","","",""); -INSERT INTO `country_i18n` VALUES("163","fr_FR","Slovénie","","",""); -INSERT INTO `country_i18n` VALUES("164","de_DE","Somalia","","",""); -INSERT INTO `country_i18n` VALUES("164","en_US","Somalia","","",""); -INSERT INTO `country_i18n` VALUES("164","es_ES","Somalia","","",""); -INSERT INTO `country_i18n` VALUES("164","fr_FR","Somalie","","",""); -INSERT INTO `country_i18n` VALUES("165","de_DE","Sudan","","",""); -INSERT INTO `country_i18n` VALUES("165","en_US","Sudan","","",""); -INSERT INTO `country_i18n` VALUES("165","es_ES","Sudán","","",""); -INSERT INTO `country_i18n` VALUES("165","fr_FR","Soudan","","",""); -INSERT INTO `country_i18n` VALUES("166","de_DE","Sri Lanka","","",""); -INSERT INTO `country_i18n` VALUES("166","en_US","Sri Lanka","","",""); -INSERT INTO `country_i18n` VALUES("166","es_ES","Sri Lanka","","",""); -INSERT INTO `country_i18n` VALUES("166","fr_FR","Sri Lanka","","",""); -INSERT INTO `country_i18n` VALUES("167","de_DE","Schweden","","",""); -INSERT INTO `country_i18n` VALUES("167","en_US","Sweden","","",""); -INSERT INTO `country_i18n` VALUES("167","es_ES","Suecia","","",""); -INSERT INTO `country_i18n` VALUES("167","fr_FR","Suède","","",""); -INSERT INTO `country_i18n` VALUES("168","de_DE","Schweiz","","",""); -INSERT INTO `country_i18n` VALUES("168","en_US","Switzerland","","",""); -INSERT INTO `country_i18n` VALUES("168","es_ES","Suiza","","",""); -INSERT INTO `country_i18n` VALUES("168","fr_FR","Suisse","","",""); -INSERT INTO `country_i18n` VALUES("169","de_DE","Suriname","","",""); -INSERT INTO `country_i18n` VALUES("169","en_US","Suriname","","",""); -INSERT INTO `country_i18n` VALUES("169","es_ES","Suriname","","",""); -INSERT INTO `country_i18n` VALUES("169","fr_FR","Suriname","","",""); -INSERT INTO `country_i18n` VALUES("170","de_DE","Swaziland","","",""); -INSERT INTO `country_i18n` VALUES("170","en_US","Swaziland","","",""); -INSERT INTO `country_i18n` VALUES("170","es_ES","Swazilandia","","",""); -INSERT INTO `country_i18n` VALUES("170","fr_FR","Swaziland","","",""); -INSERT INTO `country_i18n` VALUES("171","de_DE","Syrien","","",""); -INSERT INTO `country_i18n` VALUES("171","en_US","Syria","","",""); -INSERT INTO `country_i18n` VALUES("171","es_ES","Siria","","",""); -INSERT INTO `country_i18n` VALUES("171","fr_FR","Syrie","","",""); -INSERT INTO `country_i18n` VALUES("172","de_DE","Tadschikistan","","",""); -INSERT INTO `country_i18n` VALUES("172","en_US","Tajikistan","","",""); -INSERT INTO `country_i18n` VALUES("172","es_ES","Tayikistán","","",""); -INSERT INTO `country_i18n` VALUES("172","fr_FR","Tadjikistan","","",""); -INSERT INTO `country_i18n` VALUES("173","de_DE","Tansania","","",""); -INSERT INTO `country_i18n` VALUES("173","en_US","Tanzania","","",""); -INSERT INTO `country_i18n` VALUES("173","es_ES","Tanzanía","","",""); -INSERT INTO `country_i18n` VALUES("173","fr_FR","Tanzanie","","",""); -INSERT INTO `country_i18n` VALUES("174","de_DE","Tschad","","",""); -INSERT INTO `country_i18n` VALUES("174","en_US","Chad","","",""); -INSERT INTO `country_i18n` VALUES("174","es_ES","Chad","","",""); -INSERT INTO `country_i18n` VALUES("174","fr_FR","Tchad","","",""); -INSERT INTO `country_i18n` VALUES("175","de_DE","Thailand","","",""); -INSERT INTO `country_i18n` VALUES("175","en_US","Thailand","","",""); -INSERT INTO `country_i18n` VALUES("175","es_ES","Tailandia","","",""); -INSERT INTO `country_i18n` VALUES("175","fr_FR","Thaïlande","","",""); -INSERT INTO `country_i18n` VALUES("176","de_DE","Togo","","",""); -INSERT INTO `country_i18n` VALUES("176","en_US","Togo","","",""); -INSERT INTO `country_i18n` VALUES("176","es_ES","Togo","","",""); -INSERT INTO `country_i18n` VALUES("176","fr_FR","Togo","","",""); -INSERT INTO `country_i18n` VALUES("177","de_DE","Tonga","","",""); -INSERT INTO `country_i18n` VALUES("177","en_US","Tonga","","",""); -INSERT INTO `country_i18n` VALUES("177","es_ES","Tonga","","",""); -INSERT INTO `country_i18n` VALUES("177","fr_FR","Îles Tonga","","",""); -INSERT INTO `country_i18n` VALUES("178","de_DE","Trinidad und Tobago","","",""); -INSERT INTO `country_i18n` VALUES("178","en_US","Trinidad and Tobago","","",""); -INSERT INTO `country_i18n` VALUES("178","es_ES","Trinidad y Tabago","","",""); -INSERT INTO `country_i18n` VALUES("178","fr_FR","Trinité-et-Tobago","","",""); -INSERT INTO `country_i18n` VALUES("179","de_DE","Tunesien","","",""); -INSERT INTO `country_i18n` VALUES("179","en_US","Tunisia","","",""); -INSERT INTO `country_i18n` VALUES("179","es_ES","Túnez","","",""); -INSERT INTO `country_i18n` VALUES("179","fr_FR","Tunisie","","",""); -INSERT INTO `country_i18n` VALUES("180","de_DE","Turkménistan","","",""); -INSERT INTO `country_i18n` VALUES("180","en_US","Turkmenistan","","",""); -INSERT INTO `country_i18n` VALUES("180","es_ES","Turkmenistán","","",""); -INSERT INTO `country_i18n` VALUES("180","fr_FR","Turkménistan","","",""); -INSERT INTO `country_i18n` VALUES("181","de_DE","Türkei","","",""); -INSERT INTO `country_i18n` VALUES("181","en_US","Turkey","","",""); -INSERT INTO `country_i18n` VALUES("181","es_ES","Turquía","","",""); -INSERT INTO `country_i18n` VALUES("181","fr_FR","Turquie","","",""); -INSERT INTO `country_i18n` VALUES("182","de_DE","Tuvalu","","",""); -INSERT INTO `country_i18n` VALUES("182","en_US","Tuvalu","","",""); -INSERT INTO `country_i18n` VALUES("182","es_ES","Tuvalu","","",""); -INSERT INTO `country_i18n` VALUES("182","fr_FR","Tuvalu","","",""); -INSERT INTO `country_i18n` VALUES("183","de_DE","Ukraine","","",""); -INSERT INTO `country_i18n` VALUES("183","en_US","Ukraine","","",""); -INSERT INTO `country_i18n` VALUES("183","es_ES","Ucrania","","",""); -INSERT INTO `country_i18n` VALUES("183","fr_FR","Ukraine","","",""); -INSERT INTO `country_i18n` VALUES("184","de_DE","Uruguay","","",""); -INSERT INTO `country_i18n` VALUES("184","en_US","Uruguay","","",""); -INSERT INTO `country_i18n` VALUES("184","es_ES","Uruguay","","",""); -INSERT INTO `country_i18n` VALUES("184","fr_FR","Uruguay","","",""); -INSERT INTO `country_i18n` VALUES("185","de_DE","der Vatikan","","",""); -INSERT INTO `country_i18n` VALUES("185","en_US","The Vatican","","",""); -INSERT INTO `country_i18n` VALUES("185","es_ES","El Vatican","","",""); -INSERT INTO `country_i18n` VALUES("185","fr_FR","Vatican","","",""); -INSERT INTO `country_i18n` VALUES("186","de_DE","Vanuatu","","",""); -INSERT INTO `country_i18n` VALUES("186","en_US","Vanuatu","","",""); -INSERT INTO `country_i18n` VALUES("186","es_ES","Vanuatu","","",""); -INSERT INTO `country_i18n` VALUES("186","fr_FR","Vanuatu","","",""); -INSERT INTO `country_i18n` VALUES("187","de_DE","Venezuela","","",""); -INSERT INTO `country_i18n` VALUES("187","en_US","Venezuela","","",""); -INSERT INTO `country_i18n` VALUES("187","es_ES","Venezuela","","",""); -INSERT INTO `country_i18n` VALUES("187","fr_FR","Vénézuela","","",""); -INSERT INTO `country_i18n` VALUES("188","de_DE","Vietnam","","",""); -INSERT INTO `country_i18n` VALUES("188","en_US","Vietnam","","",""); -INSERT INTO `country_i18n` VALUES("188","es_ES","Viet Nam","","",""); -INSERT INTO `country_i18n` VALUES("188","fr_FR","Viêt Nam","","",""); -INSERT INTO `country_i18n` VALUES("189","de_DE","Jemen","","",""); -INSERT INTO `country_i18n` VALUES("189","en_US","Yemen","","",""); -INSERT INTO `country_i18n` VALUES("189","es_ES","Yemen","","",""); -INSERT INTO `country_i18n` VALUES("189","fr_FR","Yémen","","",""); -INSERT INTO `country_i18n` VALUES("191","de_DE","Zaire","","",""); -INSERT INTO `country_i18n` VALUES("191","en_US","Zaire","","",""); -INSERT INTO `country_i18n` VALUES("191","es_ES","Zaire","","",""); -INSERT INTO `country_i18n` VALUES("191","fr_FR","Zaïre","","",""); -INSERT INTO `country_i18n` VALUES("192","de_DE","Sambia","","",""); -INSERT INTO `country_i18n` VALUES("192","en_US","Zambia","","",""); -INSERT INTO `country_i18n` VALUES("192","es_ES","Zambia","","",""); -INSERT INTO `country_i18n` VALUES("192","fr_FR","Zambie","","",""); -INSERT INTO `country_i18n` VALUES("193","de_DE","Zimbabwe","","",""); -INSERT INTO `country_i18n` VALUES("193","en_US","Zimbabwe","","",""); -INSERT INTO `country_i18n` VALUES("193","es_ES","Zimbabue","","",""); -INSERT INTO `country_i18n` VALUES("193","fr_FR","Zimbabwe","","",""); -INSERT INTO `country_i18n` VALUES("196","de_DE","","","",""); -INSERT INTO `country_i18n` VALUES("196","en_US","USA","","",""); -INSERT INTO `country_i18n` VALUES("196","es_ES","","","",""); -INSERT INTO `country_i18n` VALUES("196","fr_FR","États-Unis","","",""); -INSERT INTO `country_i18n` VALUES("246","de_DE","","","",""); -INSERT INTO `country_i18n` VALUES("246","en_US","Canada","","",""); -INSERT INTO `country_i18n` VALUES("246","es_ES","","","",""); -INSERT INTO `country_i18n` VALUES("246","fr_FR","Canada","","",""); -INSERT INTO `country_i18n` VALUES("259","de_DE","Guadeloupe","","",""); -INSERT INTO `country_i18n` VALUES("259","en_US","Guadeloupe","","",""); -INSERT INTO `country_i18n` VALUES("259","es_ES","Guadalupe","","",""); -INSERT INTO `country_i18n` VALUES("259","fr_FR","Guadeloupe","","",""); -INSERT INTO `country_i18n` VALUES("260","de_DE","Französisch-Guayana","","",""); -INSERT INTO `country_i18n` VALUES("260","en_US","Guyane Française","","",""); -INSERT INTO `country_i18n` VALUES("260","es_ES","Guayana Francesa","","",""); -INSERT INTO `country_i18n` VALUES("260","fr_FR","Guyane Française","","",""); -INSERT INTO `country_i18n` VALUES("261","de_DE","Martinique","","",""); -INSERT INTO `country_i18n` VALUES("261","en_US","Martinique","","",""); -INSERT INTO `country_i18n` VALUES("261","es_ES","Martinica","","",""); -INSERT INTO `country_i18n` VALUES("261","fr_FR","Martinique","","",""); -INSERT INTO `country_i18n` VALUES("262","de_DE","Mayotte","","",""); -INSERT INTO `country_i18n` VALUES("262","en_US","Mayotte","","",""); -INSERT INTO `country_i18n` VALUES("262","es_ES","Mayotte","","",""); -INSERT INTO `country_i18n` VALUES("262","fr_FR","Mayotte","","",""); -INSERT INTO `country_i18n` VALUES("263","de_DE","La Réunion","","",""); -INSERT INTO `country_i18n` VALUES("263","en_US","Réunion(La)","","",""); -INSERT INTO `country_i18n` VALUES("263","es_ES","Réunion(la)","","",""); -INSERT INTO `country_i18n` VALUES("263","fr_FR","Réunion(La)","","",""); -INSERT INTO `country_i18n` VALUES("264","de_DE","Saint-Pierre und Miquelon","","",""); -INSERT INTO `country_i18n` VALUES("264","en_US","St Pierre et Miquelon","","",""); -INSERT INTO `country_i18n` VALUES("264","es_ES","San Pedro y Miquelón","","",""); -INSERT INTO `country_i18n` VALUES("264","fr_FR","St Pierre et Miquelon","","",""); -INSERT INTO `country_i18n` VALUES("265","de_DE","Neu-Kaledonien","","",""); -INSERT INTO `country_i18n` VALUES("265","en_US","Nouvelle-Calédonie","","",""); -INSERT INTO `country_i18n` VALUES("265","es_ES","Nouvelle-Calédonie","","",""); -INSERT INTO `country_i18n` VALUES("265","fr_FR","Nouvelle-Calédonie","","",""); -INSERT INTO `country_i18n` VALUES("266","de_DE","Französisch-Polynesien","","",""); -INSERT INTO `country_i18n` VALUES("266","en_US","Polynésie française","","",""); -INSERT INTO `country_i18n` VALUES("266","es_ES","Polinesia Francesa","","",""); -INSERT INTO `country_i18n` VALUES("266","fr_FR","Polynésie française","","",""); -INSERT INTO `country_i18n` VALUES("267","de_DE","Wallis und Futuna","","",""); -INSERT INTO `country_i18n` VALUES("267","en_US","Wallis-et-Futuna","","",""); -INSERT INTO `country_i18n` VALUES("267","es_ES","Wallis-et-Futuna","","",""); -INSERT INTO `country_i18n` VALUES("267","fr_FR","Wallis-et-Futuna","","",""); -INSERT INTO `country_i18n` VALUES("269","de_DE","Hong Kong","","",""); -INSERT INTO `country_i18n` VALUES("269","en_US","Hong Kong","","",""); -INSERT INTO `country_i18n` VALUES("269","es_ES","Hong Kong","","",""); -INSERT INTO `country_i18n` VALUES("269","fr_FR","Hong Kong","","",""); -INSERT INTO `country_i18n` VALUES("270","de_DE","Saint-Barthélemy","","",""); -INSERT INTO `country_i18n` VALUES("270","en_US","Saint Barthélemy","","",""); -INSERT INTO `country_i18n` VALUES("270","es_ES","San Bartolomé","","",""); -INSERT INTO `country_i18n` VALUES("270","fr_FR","Saint-Barthélemy","","",""); -INSERT INTO `country_i18n` VALUES("271","de_DE","Saint-Martin (franz. Teil)","","",""); -INSERT INTO `country_i18n` VALUES("271","en_US","Saint Martin (French part)","","",""); -INSERT INTO `country_i18n` VALUES("271","es_ES","San Martín (parte francesa)","","",""); -INSERT INTO `country_i18n` VALUES("271","fr_FR","Saint-Martin (Antilles françaises)","","",""); -INSERT INTO `country_i18n` VALUES("272","de_DE","Französische Süd- und Antarktisgebiete","","",""); -INSERT INTO `country_i18n` VALUES("272","en_US","French Southern Territories","","",""); -INSERT INTO `country_i18n` VALUES("272","es_ES","Tierras Australes y Antárticas Francesas","","",""); -INSERT INTO `country_i18n` VALUES("272","fr_FR","Terres australes et antarctiques françaises","","",""); - - - -DROP TABLE `coupon`; - -CREATE TABLE `coupon` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(45) NOT NULL, - `type` varchar(255) NOT NULL, - `serialized_effects` longtext NOT NULL, - `is_enabled` tinyint(1) NOT NULL, - `start_date` datetime DEFAULT NULL, - `expiration_date` datetime DEFAULT NULL, - `max_usage` int(11) NOT NULL, - `is_cumulative` tinyint(1) NOT NULL, - `is_removing_postage` tinyint(1) NOT NULL, - `is_available_on_special_offers` tinyint(1) NOT NULL, - `is_used` tinyint(1) NOT NULL, - `serialized_conditions` text NOT NULL, - `per_customer_usage_count` tinyint(1) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`), - KEY `idx_is_enabled` (`is_enabled`), - KEY `idx_is_used` (`is_used`), - KEY `idx_type` (`type`), - KEY `idx_start_date` (`start_date`), - KEY `idx_expiration_date` (`expiration_date`), - KEY `idx_is_cumulative` (`is_cumulative`), - KEY `idx_is_removing_postage` (`is_removing_postage`), - KEY `idx_max_usage` (`max_usage`), - KEY `idx_is_available_on_special_offers` (`is_available_on_special_offers`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_country`; - -CREATE TABLE `coupon_country` ( - `coupon_id` int(11) NOT NULL, - `country_id` int(11) NOT NULL, - PRIMARY KEY (`coupon_id`,`country_id`), - KEY `fk_country_id_idx` (`country_id`), - CONSTRAINT `fk_coupon_country_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_coupon_country_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_customer_count`; - -CREATE TABLE `coupon_customer_count` ( - `coupon_id` int(11) NOT NULL, - `customer_id` int(11) NOT NULL, - `count` int(11) NOT NULL DEFAULT '0', - PRIMARY KEY (`coupon_id`,`customer_id`), - KEY `fk_coupon_customer_customer_id_idx` (`customer_id`), - KEY `fk_coupon_customer_coupon_id_idx` (`coupon_id`), - CONSTRAINT `fk_coupon_customer_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_coupon_customer_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_i18n`; - -CREATE TABLE `coupon_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - `short_description` text NOT NULL, - `description` longtext NOT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `coupon_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_module`; - -CREATE TABLE `coupon_module` ( - `coupon_id` int(11) NOT NULL, - `module_id` int(11) NOT NULL, - PRIMARY KEY (`coupon_id`,`module_id`), - KEY `fk_module_id_idx` (`module_id`), - CONSTRAINT `fk_coupon_module_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_coupon_module_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `coupon_version`; - -CREATE TABLE `coupon_version` ( - `id` int(11) NOT NULL, - `code` varchar(45) NOT NULL, - `type` varchar(255) NOT NULL, - `serialized_effects` longtext NOT NULL, - `is_enabled` tinyint(1) NOT NULL, - `start_date` datetime DEFAULT NULL, - `expiration_date` datetime DEFAULT NULL, - `max_usage` int(11) NOT NULL, - `is_cumulative` tinyint(1) NOT NULL, - `is_removing_postage` tinyint(1) NOT NULL, - `is_available_on_special_offers` tinyint(1) NOT NULL, - `is_used` tinyint(1) NOT NULL, - `serialized_conditions` text NOT NULL, - `per_customer_usage_count` tinyint(1) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `coupon_version_FK_1` FOREIGN KEY (`id`) REFERENCES `coupon` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `currency`; - -CREATE TABLE `currency` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(45) DEFAULT NULL, - `symbol` varchar(45) DEFAULT NULL, - `format` char(10) DEFAULT NULL, - `rate` float DEFAULT NULL, - `visible` tinyint(4) DEFAULT '0', - `position` int(11) DEFAULT NULL, - `by_default` tinyint(4) DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_currency_by_default` (`by_default`), - KEY `idx_currency_code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8; - -INSERT INTO `currency` VALUES("1","EUR","€","%n %s","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("2","USD","$","%s%n","1.26","0","2","0","2017-02-28 18:20:10","2017-02-28 18:25:16"); -INSERT INTO `currency` VALUES("3","GBP","£","%s%n","0.89","0","3","0","2017-02-28 18:20:10","2017-02-28 18:25:18"); -INSERT INTO `currency` VALUES("4","CHF","CHF","%n %s","1.34183","0","4","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("5","MXN","$","%n %s","17.1304","0","5","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("6","PLN","zł","%n %s","3.8451","0","6","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("7","CNY","¥","%s %n","9.13916","0","7","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("8","NOK","kr","%n %s","7.97791","0","8","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("9","MDL","MDL","%n %s","16.1774","0","9","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("10","PYG","Gs","%n %s","6547.98","0","10","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("11","ARS","ARS","%n %s","5.39","0","11","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("12","BYR","р.","%n%s","1","0","12","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("13","FJD","$","%s%n","2.57483","0","13","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("14","RSD","RSD","%n %s","115.68","0","14","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("15","SEK","kr","%n %s","9.14651","0","15","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("16","HRK","kn","%n %s","1","0","16","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("17","DKK","kr","%n %s","7.45201","0","17","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("18","NGN","₦","%s %n","1","0","18","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("19","HKD","$","%n %s","11.0512","0","19","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("20","CAD","CAD$","%s%n","1.40054","0","20","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("21","SAR","﷼","%n %s","5.10682","0","21","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("22","CZK","Kč","%n %s","1","0","22","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("23","CRC","₡","%s %n","560","0","23","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("24","AZN","AZN","%n %s","1.09237","0","24","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("25","IDR","Rp‎","%n %s","12177.6","0","25","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("26","PKR","₨","%n %s","117.289","0","26","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("27","BRL","R$","%s %n","2.31583","0","27","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("28","VND","₫","%n %s","26505.8","0","28","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("29","PHP","PHP","%s %n","1","0","29","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("30","GTQ","Q","%n %s","11.0988","0","30","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("31","TRY","TL","%n %s","1.97638","0","31","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("32","JPY","¥","%s %n","113.786","0","32","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("33","RUB","руб","%n %s","41.7632","0","33","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("34","PEN","S/.","%s %n","2.7845","0","34","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("35","EGP","£","%s %n","7.77518","0","35","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("36","GEL","ლ","%n %s","2.46684","0","36","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("37","BOB","$b","%n %s","9.5762","0","37","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("38","AED","AED","%s %n","1","0","38","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("39","THB","฿","%n %s","41.4441","0","39","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("40","ILS","₪‎","%n%s","4.97713","0","40","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("41","MYR","RM","%s%n","1","0","41","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("42","VEF","Bs","%n %s","5.84819","0","42","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("43","HUF","Ft‎","%n %s","276.334","0","43","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("44","KES","KSh","%s %n","1","0","44","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("45","UAH","₴","%n %s","1","0","45","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("46","TND","DT","%n%s","1","0","46","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `currency` VALUES("47","BGN","лв","%n %s","1.9558","0","47","0","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `currency_i18n`; - -CREATE TABLE `currency_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `name` varchar(45) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `currency_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `currency` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `currency_i18n` VALUES("1","de_DE","Euro"); -INSERT INTO `currency_i18n` VALUES("1","en_US","Euro"); -INSERT INTO `currency_i18n` VALUES("1","es_ES","Euro"); -INSERT INTO `currency_i18n` VALUES("1","fr_FR","Euro"); -INSERT INTO `currency_i18n` VALUES("2","de_DE","US Dollar"); -INSERT INTO `currency_i18n` VALUES("2","en_US","United States Dollar"); -INSERT INTO `currency_i18n` VALUES("2","es_ES","Dólar Estadunidense"); -INSERT INTO `currency_i18n` VALUES("2","fr_FR","Dollar Américain"); -INSERT INTO `currency_i18n` VALUES("3","de_DE","Britische Pfund"); -INSERT INTO `currency_i18n` VALUES("3","en_US","UK Pound"); -INSERT INTO `currency_i18n` VALUES("3","es_ES","Libra Reino Unido"); -INSERT INTO `currency_i18n` VALUES("3","fr_FR","Livre anglaise"); -INSERT INTO `currency_i18n` VALUES("4","de_DE",""); -INSERT INTO `currency_i18n` VALUES("4","en_US","Franc"); -INSERT INTO `currency_i18n` VALUES("4","es_ES",""); -INSERT INTO `currency_i18n` VALUES("4","fr_FR","Franc"); -INSERT INTO `currency_i18n` VALUES("5","de_DE",""); -INSERT INTO `currency_i18n` VALUES("5","en_US","Peso"); -INSERT INTO `currency_i18n` VALUES("5","es_ES",""); -INSERT INTO `currency_i18n` VALUES("5","fr_FR","Peso"); -INSERT INTO `currency_i18n` VALUES("6","de_DE",""); -INSERT INTO `currency_i18n` VALUES("6","en_US","Złoty"); -INSERT INTO `currency_i18n` VALUES("6","es_ES",""); -INSERT INTO `currency_i18n` VALUES("6","fr_FR","Złoty"); -INSERT INTO `currency_i18n` VALUES("7","de_DE",""); -INSERT INTO `currency_i18n` VALUES("7","en_US","Yuan"); -INSERT INTO `currency_i18n` VALUES("7","es_ES",""); -INSERT INTO `currency_i18n` VALUES("7","fr_FR","Yuan"); -INSERT INTO `currency_i18n` VALUES("8","de_DE",""); -INSERT INTO `currency_i18n` VALUES("8","en_US","Krone"); -INSERT INTO `currency_i18n` VALUES("8","es_ES",""); -INSERT INTO `currency_i18n` VALUES("8","fr_FR","Couronne Norvégienne"); -INSERT INTO `currency_i18n` VALUES("9","de_DE",""); -INSERT INTO `currency_i18n` VALUES("9","en_US","Lei"); -INSERT INTO `currency_i18n` VALUES("9","es_ES",""); -INSERT INTO `currency_i18n` VALUES("9","fr_FR","Lei"); -INSERT INTO `currency_i18n` VALUES("10","de_DE",""); -INSERT INTO `currency_i18n` VALUES("10","en_US","Guaraní"); -INSERT INTO `currency_i18n` VALUES("10","es_ES",""); -INSERT INTO `currency_i18n` VALUES("10","fr_FR","Guaraní"); -INSERT INTO `currency_i18n` VALUES("11","de_DE",""); -INSERT INTO `currency_i18n` VALUES("11","en_US","Peso Argentino"); -INSERT INTO `currency_i18n` VALUES("11","es_ES",""); -INSERT INTO `currency_i18n` VALUES("11","fr_FR","Peso Argentin"); -INSERT INTO `currency_i18n` VALUES("12","de_DE",""); -INSERT INTO `currency_i18n` VALUES("12","en_US","Belarusian ruble"); -INSERT INTO `currency_i18n` VALUES("12","es_ES",""); -INSERT INTO `currency_i18n` VALUES("12","fr_FR","Rouble Biélorusse"); -INSERT INTO `currency_i18n` VALUES("13","de_DE","Dollar"); -INSERT INTO `currency_i18n` VALUES("13","en_US","Dollar"); -INSERT INTO `currency_i18n` VALUES("13","es_ES",""); -INSERT INTO `currency_i18n` VALUES("13","fr_FR","Dollar"); -INSERT INTO `currency_i18n` VALUES("14","de_DE",""); -INSERT INTO `currency_i18n` VALUES("14","en_US","Dinar"); -INSERT INTO `currency_i18n` VALUES("14","es_ES",""); -INSERT INTO `currency_i18n` VALUES("14","fr_FR","Dinar"); -INSERT INTO `currency_i18n` VALUES("15","de_DE",""); -INSERT INTO `currency_i18n` VALUES("15","en_US","Krona"); -INSERT INTO `currency_i18n` VALUES("15","es_ES",""); -INSERT INTO `currency_i18n` VALUES("15","fr_FR","Couronne Suédoise"); -INSERT INTO `currency_i18n` VALUES("16","de_DE",""); -INSERT INTO `currency_i18n` VALUES("16","en_US","Croatian Kuna"); -INSERT INTO `currency_i18n` VALUES("16","es_ES",""); -INSERT INTO `currency_i18n` VALUES("16","fr_FR","Kuna Croate"); -INSERT INTO `currency_i18n` VALUES("17","de_DE","Dänische Kronen"); -INSERT INTO `currency_i18n` VALUES("17","en_US","Danish krone"); -INSERT INTO `currency_i18n` VALUES("17","es_ES",""); -INSERT INTO `currency_i18n` VALUES("17","fr_FR","Couronne Danoise"); -INSERT INTO `currency_i18n` VALUES("18","de_DE",""); -INSERT INTO `currency_i18n` VALUES("18","en_US","Nigerian naira"); -INSERT INTO `currency_i18n` VALUES("18","es_ES",""); -INSERT INTO `currency_i18n` VALUES("18","fr_FR","Naira Nigérien"); -INSERT INTO `currency_i18n` VALUES("19","de_DE",""); -INSERT INTO `currency_i18n` VALUES("19","en_US","Hong Kong Dollar"); -INSERT INTO `currency_i18n` VALUES("19","es_ES","Dólar de Hong Kong"); -INSERT INTO `currency_i18n` VALUES("19","fr_FR","Dollar de Honk-Kong"); -INSERT INTO `currency_i18n` VALUES("20","de_DE","Dollar (CAD)"); -INSERT INTO `currency_i18n` VALUES("20","en_US","Dollar (CAD)"); -INSERT INTO `currency_i18n` VALUES("20","es_ES",""); -INSERT INTO `currency_i18n` VALUES("20","fr_FR","Dollar Canadien"); -INSERT INTO `currency_i18n` VALUES("21","de_DE",""); -INSERT INTO `currency_i18n` VALUES("21","en_US","Riyal"); -INSERT INTO `currency_i18n` VALUES("21","es_ES",""); -INSERT INTO `currency_i18n` VALUES("21","fr_FR","Riyal"); -INSERT INTO `currency_i18n` VALUES("22","de_DE",""); -INSERT INTO `currency_i18n` VALUES("22","en_US","Czech koruna"); -INSERT INTO `currency_i18n` VALUES("22","es_ES",""); -INSERT INTO `currency_i18n` VALUES("22","fr_FR","Couronne Tchèque"); -INSERT INTO `currency_i18n` VALUES("23","de_DE",""); -INSERT INTO `currency_i18n` VALUES("23","en_US","Colón"); -INSERT INTO `currency_i18n` VALUES("23","es_ES",""); -INSERT INTO `currency_i18n` VALUES("23","fr_FR","Colón"); -INSERT INTO `currency_i18n` VALUES("24","de_DE",""); -INSERT INTO `currency_i18n` VALUES("24","en_US","Manat"); -INSERT INTO `currency_i18n` VALUES("24","es_ES",""); -INSERT INTO `currency_i18n` VALUES("24","fr_FR","Manat"); -INSERT INTO `currency_i18n` VALUES("25","de_DE",""); -INSERT INTO `currency_i18n` VALUES("25","en_US","Rupiah"); -INSERT INTO `currency_i18n` VALUES("25","es_ES",""); -INSERT INTO `currency_i18n` VALUES("25","fr_FR","Roupie Indonésienne"); -INSERT INTO `currency_i18n` VALUES("26","de_DE",""); -INSERT INTO `currency_i18n` VALUES("26","en_US","Rupee"); -INSERT INTO `currency_i18n` VALUES("26","es_ES",""); -INSERT INTO `currency_i18n` VALUES("26","fr_FR","Roupie Pakistanaise"); -INSERT INTO `currency_i18n` VALUES("27","de_DE",""); -INSERT INTO `currency_i18n` VALUES("27","en_US","Real"); -INSERT INTO `currency_i18n` VALUES("27","es_ES",""); -INSERT INTO `currency_i18n` VALUES("27","fr_FR","Real"); -INSERT INTO `currency_i18n` VALUES("28","de_DE",""); -INSERT INTO `currency_i18n` VALUES("28","en_US","Đồng"); -INSERT INTO `currency_i18n` VALUES("28","es_ES",""); -INSERT INTO `currency_i18n` VALUES("28","fr_FR","Đồng"); -INSERT INTO `currency_i18n` VALUES("29","de_DE",""); -INSERT INTO `currency_i18n` VALUES("29","en_US","Philippine Peso"); -INSERT INTO `currency_i18n` VALUES("29","es_ES",""); -INSERT INTO `currency_i18n` VALUES("29","fr_FR","Peso Philippin"); -INSERT INTO `currency_i18n` VALUES("30","de_DE",""); -INSERT INTO `currency_i18n` VALUES("30","en_US","Quetzal"); -INSERT INTO `currency_i18n` VALUES("30","es_ES",""); -INSERT INTO `currency_i18n` VALUES("30","fr_FR","Quetzal"); -INSERT INTO `currency_i18n` VALUES("31","de_DE",""); -INSERT INTO `currency_i18n` VALUES("31","en_US","Lira"); -INSERT INTO `currency_i18n` VALUES("31","es_ES",""); -INSERT INTO `currency_i18n` VALUES("31","fr_FR","Lire"); -INSERT INTO `currency_i18n` VALUES("32","de_DE",""); -INSERT INTO `currency_i18n` VALUES("32","en_US","Yen"); -INSERT INTO `currency_i18n` VALUES("32","es_ES",""); -INSERT INTO `currency_i18n` VALUES("32","fr_FR","Yen"); -INSERT INTO `currency_i18n` VALUES("33","de_DE",""); -INSERT INTO `currency_i18n` VALUES("33","en_US","Ruble"); -INSERT INTO `currency_i18n` VALUES("33","es_ES",""); -INSERT INTO `currency_i18n` VALUES("33","fr_FR","Rouble"); -INSERT INTO `currency_i18n` VALUES("34","de_DE",""); -INSERT INTO `currency_i18n` VALUES("34","en_US","Nuevo Sol"); -INSERT INTO `currency_i18n` VALUES("34","es_ES",""); -INSERT INTO `currency_i18n` VALUES("34","fr_FR","Nuevo Sol"); -INSERT INTO `currency_i18n` VALUES("35","de_DE",""); -INSERT INTO `currency_i18n` VALUES("35","en_US","Pound"); -INSERT INTO `currency_i18n` VALUES("35","es_ES",""); -INSERT INTO `currency_i18n` VALUES("35","fr_FR","Livre"); -INSERT INTO `currency_i18n` VALUES("36","de_DE",""); -INSERT INTO `currency_i18n` VALUES("36","en_US","Lari"); -INSERT INTO `currency_i18n` VALUES("36","es_ES",""); -INSERT INTO `currency_i18n` VALUES("36","fr_FR","Lari"); -INSERT INTO `currency_i18n` VALUES("37","de_DE",""); -INSERT INTO `currency_i18n` VALUES("37","en_US","Boliviano"); -INSERT INTO `currency_i18n` VALUES("37","es_ES",""); -INSERT INTO `currency_i18n` VALUES("37","fr_FR","Bolivie"); -INSERT INTO `currency_i18n` VALUES("38","de_DE",""); -INSERT INTO `currency_i18n` VALUES("38","en_US","United Arab Emirates dirham"); -INSERT INTO `currency_i18n` VALUES("38","es_ES",""); -INSERT INTO `currency_i18n` VALUES("38","fr_FR","Dirham des Émirats Arabes Unis"); -INSERT INTO `currency_i18n` VALUES("39","de_DE",""); -INSERT INTO `currency_i18n` VALUES("39","en_US","Baht"); -INSERT INTO `currency_i18n` VALUES("39","es_ES",""); -INSERT INTO `currency_i18n` VALUES("39","fr_FR","Baht"); -INSERT INTO `currency_i18n` VALUES("40","de_DE",""); -INSERT INTO `currency_i18n` VALUES("40","en_US","Shekel"); -INSERT INTO `currency_i18n` VALUES("40","es_ES",""); -INSERT INTO `currency_i18n` VALUES("40","fr_FR","Shekel"); -INSERT INTO `currency_i18n` VALUES("41","de_DE",""); -INSERT INTO `currency_i18n` VALUES("41","en_US","Ringgit"); -INSERT INTO `currency_i18n` VALUES("41","es_ES",""); -INSERT INTO `currency_i18n` VALUES("41","fr_FR","Ringgit"); -INSERT INTO `currency_i18n` VALUES("42","de_DE",""); -INSERT INTO `currency_i18n` VALUES("42","en_US","Bolívar fuerte"); -INSERT INTO `currency_i18n` VALUES("42","es_ES",""); -INSERT INTO `currency_i18n` VALUES("42","fr_FR","Bolivar Vénézuélien"); -INSERT INTO `currency_i18n` VALUES("43","de_DE",""); -INSERT INTO `currency_i18n` VALUES("43","en_US","Forint"); -INSERT INTO `currency_i18n` VALUES("43","es_ES",""); -INSERT INTO `currency_i18n` VALUES("43","fr_FR","Forint"); -INSERT INTO `currency_i18n` VALUES("44","de_DE",""); -INSERT INTO `currency_i18n` VALUES("44","en_US","Kenyan shilling"); -INSERT INTO `currency_i18n` VALUES("44","es_ES",""); -INSERT INTO `currency_i18n` VALUES("44","fr_FR","Shilling Kenyan"); -INSERT INTO `currency_i18n` VALUES("45","de_DE",""); -INSERT INTO `currency_i18n` VALUES("45","en_US","Гривна"); -INSERT INTO `currency_i18n` VALUES("45","es_ES",""); -INSERT INTO `currency_i18n` VALUES("45","fr_FR","Hryvnia Ukrainien"); -INSERT INTO `currency_i18n` VALUES("46","de_DE",""); -INSERT INTO `currency_i18n` VALUES("46","en_US","Tunisian Dinar"); -INSERT INTO `currency_i18n` VALUES("46","es_ES",""); -INSERT INTO `currency_i18n` VALUES("46","fr_FR","Dinar Tunisien"); -INSERT INTO `currency_i18n` VALUES("47","de_DE",""); -INSERT INTO `currency_i18n` VALUES("47","en_US","Lev"); -INSERT INTO `currency_i18n` VALUES("47","es_ES",""); -INSERT INTO `currency_i18n` VALUES("47","fr_FR","Lev"); - - - -DROP TABLE `customer`; - -CREATE TABLE `customer` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `title_id` int(11) NOT NULL, - `lang_id` int(11) DEFAULT NULL, - `ref` varchar(50) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `email` varchar(255) DEFAULT NULL, - `password` varchar(255) DEFAULT NULL, - `algo` varchar(128) DEFAULT NULL, - `reseller` tinyint(4) DEFAULT NULL, - `sponsor` varchar(50) DEFAULT NULL, - `discount` decimal(16,6) DEFAULT '0.000000', - `remember_me_token` varchar(255) DEFAULT NULL, - `remember_me_serial` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `idx_customer_customer_title_id` (`title_id`), - KEY `idx_customer_lang_id` (`lang_id`), - KEY `idx_email` (`email`), - CONSTRAINT `fk_customer_customer_title_id` FOREIGN KEY (`title_id`) REFERENCES `customer_title` (`id`), - CONSTRAINT `fk_customer_lang_id` FOREIGN KEY (`lang_id`) REFERENCES `lang` (`id`) ON DELETE SET NULL -) ENGINE=InnoDB AUTO_INCREMENT=125 DEFAULT CHARSET=utf8; - -INSERT INTO `customer` VALUES("33","1","1","PS_1","Laurent","LE CORRE","llecorre@netcourrier.com","$2y$10$RHV9fKE/KQMnK3SLwJlZk.oanrZVOO2f8fwFnGRm0eu8jEdqHVR1u","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-05-11 20:51:13","1","2017-05-11 20:51:13",""); -INSERT INTO `customer` VALUES("34","1","1","PS_2","Pascal ","PUJALTE","acig31@orange.fr","405c5794ffdcd1a39ac347fbb82c9336","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("35","1","1","PS_7","Jean-Marc","PUGINIER","jean-marc.puginier@orange.fr","2d475a23acdf0277e20f83cab98ba12d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("36","1","1","PS_8","Gérald","PASTEL","gpastel.ext@orange.com","4787d170707b38b037ae55df3210e510","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("37","1","1","PS_9","Michel","MURAT","michel-murat@orange.fr","85532664a6f49d6d212428fdfbd2b1e7","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("38","1","1","PS_11","Guillaume","ESPARDELIER","guillaume.espardelier@sopra.com","11969c5c187e6e97ea2606ad7d135db9","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("40","1","1","PS_19","François","GAUTREAU","gautreau.francois@orange.fr","461a742c529c3bacdad5186b6b89f1c6","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("41","1","1","PS_23","Matthieu","SALMONESE","matthieu.salmonese@sfr.fr","8493e43d593ccc61dc5c3246c9517318","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("43","1","1","PS_36","Pascal","GUYON","pg.guyon@laposte.net","54050744aa97e52456f4b743c0171245","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("44","1","1","PS_54","Patrick","MARZARI","marzari@toto.fr","2413842b09b24dfbfa094e382d578ac9","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("45","1","1","PS_59","LARY","RALUY","laryraluy@gmail.com","40e4736cc17638c91d3a7755a76c3b50","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("46","1","1","PS_65","Philippe","PROTTI","philippe.protti25@gmail.com","96f598d10a47f2f2f1535c79d68ffb6f","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("47","1","1","PS_76","Jean-Marc","MOLINIÉ","jeanmarcmolinie@aol.com","98a049326925b0eafb7070d138e57127","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("48","1","1","PS_78","nicolas","GOURET","nico.gougou@hotmail.fr","58ad6bf0a9c067ed6928087293f631a5","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-04-11 18:58:06","1","2017-04-11 18:58:06",""); -INSERT INTO `customer` VALUES("64","2","1","PS_3","Violette","GUARDIA","l.guardia@free.fr","67a61e9a7cdc803682f305e7e208ecef","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("65","2","1","PS_4","Celine","BELOTTI","celinebelotti8888@gmail.com","446af3890da51debbf071661e1d7674d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("66","2","1","PS_5","Virginie","RASPAUD","virginie.raspaud@gmail.com","bc092275d38be971781f95421a59b36b","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("67","2","1","PS_10","Karine","RENAULT-JOLY","joke.renault@orange.fr","b6a80c5f1e5378c566da3c17b20b593d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("68","2","1","PS_12","Volatiana","RAELISON","volatiana.raelison@orange.com","531e509f64f166db365347e940521764","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("69","2","1","PS_14","Emmanuelle","STACCHETTI","manu1940@orange.fr","854c4a1d6ecc8459c3d81164d1ae2139","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("70","2","1","PS_15","Catherine","KOGEL","catherine.kogel@orange.com","fa39e369b04d5d5f4114001c3c838f31","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("71","2","1","PS_16","Pauline","DELMOTTE","delmotte.pauline@wanadoo.fr","12fcdce6244ecc810f08795bed72e999","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("72","2","1","PS_17","Elvire","CHANGEAT","changeat-elvire@orange.fr","20062c794464b265cbdc9e5ce057a3ff","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("74","2","1","PS_20","Sandra","MARON","smaron@repere21.fr","3b69a4ea70a5b98a3928d36ecc770560","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("75","2","1","PS_21","Marie-Christine","GARCIA","mariechristinegarcia1@orange.fr","685f526f9eebc184d9c7697a43573cca","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("76","2","1","PS_22","Sophie","THOMAS","sophie19@gmail.com","ba366f30639dccfbbcc3310bec65d877","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("77","2","1","PS_26","Sandra","MARON","ssuicmez@yahoo.fr","c44fb908023c0eb0726a398b5ebb91bd","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("78","2","1","PS_27","Myriam","BELOTTI","belotti.myriam@orange.fr","51b57189da598e3e09b5f5e019907f6c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("79","2","1","PS_28","Stéphanie","BELOTTI","stephanie.belotti@hotmail.fr","49f1ae4b4d10925930fcfaa2a093930c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("80","2","1","PS_29","Belotti","IMMOBILIER","belotti.immobilier@wanadoo.fr","85127b9cb2a23eaa1c8358f86f6c164e","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("81","2","1","PS_30","catherine","BOUSQUET","bousquetcatherine@bbox.fr","4bf7619cb170e22f2fcb55f692e6230f","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("82","2","1","PS_31","Karine","AGARD","d.agard@neuf.fr","db8367e2343453d5c36408fad7b17102","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("83","2","1","PS_32","Cécile","BOIAGO","cboiago@sfr.fr","ac9874bf6c76f6e394eae65ab9e914fb","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("84","2","1","PS_33","nolwenn","THIESSARD","nolwennthiessard@yahoo.fr","681ba3d13ae6fb269fa06ac2ae095bb6","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("85","2","1","PS_35","christine","PORTE","chris.porte31@gmail.com","2af179751fcf7acb70cec8314d0e230d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("86","2","1","PS_37","loren","DOLDER","tahis2003@yahoo.fr","fb0742e7a939b1055a2cdc7502c0747d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("87","2","1","PS_38","Sandra","TEULIER","sandra.teulier@orange.fr","85ea597ad54f703747d9d1e0aad3e63b","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("88","2","1","PS_39","Margot","BAUVAIS","margot.bauvais@gmail.com","ffb3e565c6c55d5acde1740d87a5e194","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("89","2","1","PS_40","Lydia","GUARDIA","nena.guardia@free.fr","d096aac522edff43cd2e0dc6af135fc3","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("90","2","1","PS_41","Sophie","BLANKE","epalkk@gmail.com","9302ea90cb50956feb44c1301ee0f2b9","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("91","2","1","PS_42","Rose","JEAN-PIERRE","rosejp@laposte.net","92daf4333b24fd79a7b721856763017a","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("92","2","1","PS_43","KARINE","DELILLE","kdelille@yahoo.com","06a5c07c2957739216b15183d3b11df7","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("93","2","1","PS_44","charlotte","ESMENJAUD","charlotte_dreyfuss@yahoo.fr","430740600cb396128442ed2361a3e552","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("94","2","1","PS_45","fanny","DELEPLANQUE","franck.deleplanque@hotmail.fr","6fbed6e8f7bfc26f8b8110617a0dabfb","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("95","2","1","PS_46","Elisabeth","GABAUD","elisabeth.gabaud@sopra.com","1000698d9a9327985abcdf8eb34d1ba7","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("96","2","1","PS_47","odile","DUBOIS BOUDES","odile.duboisboudesi@hotmail.fr","6231b645bb031a061988620f2337f162","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("97","2","1","PS_48","SARL VALESID","CURVES","curves.portetsurgaronne@orange.fr","a56d928a983a43575ee37506a779ad41","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("98","2","1","PS_49","Sabine","CAPPAROS","sabine.capparos@wanadoo.fr","1426908954d1d6fff2adc68c008caf4e","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("99","2","1","PS_51","elisabeth","CURVES","e.curves@hotmail.fr","b8698f24353bbdfef3d43ef6fea16500","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("100","2","1","PS_52","CORINE","LANFRANCO PRADEL","oiseaudelune@gmail.com","14769620507b5fbe06e58a28d8f2e7c3","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("101","2","1","PS_53","Corinne","AMAGAT","contact@domainedebelair.fr","61ce25dd6f0c39e6b92141d00bd5ab65","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("102","2","1","PS_55","Astride","LE CORRE","yolc@orange.fr","66747167e9127de2c6441932e8c22f4f","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("103","2","1","PS_56","Mercedes","RATINHO","ymratinho@icloud.com","d36e9024e40da2d2eba5d12b2ddd995e","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("104","2","1","PS_57","Clotilde","JAOUEN","clotilde.jaouen@gmail.com","df410c73803d1d622ac8f1dddc6e1a9d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("105","2","1","PS_58","Myriam","DIEGUEZ","contact@dieguezetfils.com","fdbe7e6f0b73914a4521412c46d0142e","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("106","2","1","PS_60","elisabeth","HENNEBO","thebabey@hotmail.com","6cedf1346b3f4a11825d75d5d32a2402","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("107","2","1","PS_61","Dominique","RAMBAUD","ambre_juste@hotmail.com","20f67841748c37f26d5714e4ea0099f3","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("108","2","1","PS_62","dominique","LE CORRE","dominiquelc2@orange.fr","ff4c401862b579a617f6df02137a2785","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("109","2","1","PS_63","fabienne","TASSETTI CRÊPERIE LE BIDULE","tasfab@hotmail.fr","a3e62b2b98606e20d4a0cf6ae6a0421c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("110","2","1","PS_64","Claire","MARTINI","martini.claire@orange.fr","28c117d30c8c3c59aabfd77bb24aa23d","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("111","2","1","PS_66","karine","GOETHALS","karine.kg@hotmail.fr","fd838ac56eb181542b92f9c635809082","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("112","2","1","PS_67","VERONIQUE","GASPERI","f.gasperi@orange.fr","39ef14e50b8eca25704d9c091d71784a","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("113","2","1","PS_68","Françoise","DAVID","fleurea31@gmail.com","49f1ae4b4d10925930fcfaa2a093930c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("114","2","1","PS_69","AXELLE","LES GOURMANDISES DU VOLVESTRE","contact@les-gourmandises-du-volvestre.fr","054ee6f7e13e60d0d37fc3cbd4528471","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("115","2","1","PS_70","ODILE","MAILHE","odile@lrqdo.fr","6231b645bb031a061988620f2337f162","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("116","2","1","PS_71","Aurélie","SOUM","eternite_ephemere@hotmail.fr","13b4b3e592b27602150adb13296a778a","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("117","2","1","PS_72","valérie","MARCHESIN","valeriemarches@orange.fr","fe1c39ca3ee22034a721e1d2528b5549","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("118","2","1","PS_73","josiane","JEAN","josiane.jean54@free.fr","e431b5c849e25fa1bee1903b0e76e75a","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("119","2","1","PS_75","Genevieve","ROUJAS","genehugues@orange.fr","809486eacdb79ae6054e3f9b4cf93ad2","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("120","2","1","PS_77","Claire","PELLAT","claire.fiastre@gmail.com","e689f7299e837d69a9fb789b54bbd4f7","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("121","2","1","PS_79","Adèle","DELEBOIS","bonjour.delu@gmail.com","e4f56a32e71c0fdd6950dcd473d6df91","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("122","2","1","PS_80","BEAUMEL","MAGALI","PINk79red@hotmail.com","3a4db406db4d8208a5a7ae8b739bc89c","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("123","2","1","PS_81","julienne","BOUKRAA","juj75@live.fr","1aaea93cd49a36096ae89b42ff03a709","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); -INSERT INTO `customer` VALUES("124","2","1","PS_82","Claire","LOZE","Claireloze31@gmail.com","820eda1117d3d177603d61913a082160","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:49","2017-04-11 18:58:49","1","2017-04-11 18:58:49",""); - - - -DROP TABLE `customer_title`; - -CREATE TABLE `customer_title` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `by_default` int(11) NOT NULL DEFAULT '0', - `position` varchar(45) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; - -INSERT INTO `customer_title` VALUES("1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `customer_title` VALUES("2","0","2","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `customer_title` VALUES("3","0","3","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `customer_title_i18n`; - -CREATE TABLE `customer_title_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `short` varchar(10) DEFAULT NULL, - `long` varchar(45) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `customer_title_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `customer_title` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `customer_title_i18n` VALUES("1","de_DE","Hr.","Herr"); -INSERT INTO `customer_title_i18n` VALUES("1","en_US","Mr.","Mister"); -INSERT INTO `customer_title_i18n` VALUES("1","es_ES","Sr.","Señor"); -INSERT INTO `customer_title_i18n` VALUES("1","fr_FR","M.","Monsieur"); -INSERT INTO `customer_title_i18n` VALUES("2","de_DE","Fr.","Frau"); -INSERT INTO `customer_title_i18n` VALUES("2","en_US","Mrs","Misses"); -INSERT INTO `customer_title_i18n` VALUES("2","es_ES","Sra","Señora"); -INSERT INTO `customer_title_i18n` VALUES("2","fr_FR","Mme","Madame"); -INSERT INTO `customer_title_i18n` VALUES("3","de_DE","Fr.","Fräulein"); -INSERT INTO `customer_title_i18n` VALUES("3","en_US","Miss_short","Miss"); -INSERT INTO `customer_title_i18n` VALUES("3","es_ES","Señorita","Señorita"); -INSERT INTO `customer_title_i18n` VALUES("3","fr_FR","Mlle","Mademoiselle"); - - - -DROP TABLE `customer_version`; - -CREATE TABLE `customer_version` ( - `id` int(11) NOT NULL, - `title_id` int(11) NOT NULL, - `lang_id` int(11) DEFAULT NULL, - `ref` varchar(50) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `email` varchar(255) DEFAULT NULL, - `password` varchar(255) DEFAULT NULL, - `algo` varchar(128) DEFAULT NULL, - `reseller` tinyint(4) DEFAULT NULL, - `sponsor` varchar(50) DEFAULT NULL, - `discount` decimal(16,6) DEFAULT '0.000000', - `remember_me_token` varchar(255) DEFAULT NULL, - `remember_me_serial` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - `order_ids` text, - `order_versions` text, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `customer_version_FK_1` FOREIGN KEY (`id`) REFERENCES `customer` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `customer_version` VALUES("33","1","1","PS_1","Laurent","LE CORRE","llecorre@netcourrier.com","$2y$10$RHV9fKE/KQMnK3SLwJlZk.oanrZVOO2f8fwFnGRm0eu8jEdqHVR1u","PASSWORD_BCRYPT","","","","","","2017-04-11 18:58:06","2017-05-11 20:51:13","1","2017-05-11 20:51:13","","",""); - - - -DROP TABLE `dpdpickup_price`; - -CREATE TABLE `dpdpickup_price` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `area_id` int(11) NOT NULL, - `weight_max` float NOT NULL, - `price` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `FI_dpdpickup_price_area_id` (`area_id`), - CONSTRAINT `fk_dpdpickup_price_area_id` FOREIGN KEY (`area_id`) REFERENCES `area` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `export`; - -CREATE TABLE `export` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) NOT NULL, - `position` int(11) NOT NULL, - `export_category_id` int(11) NOT NULL, - `handle_class` longtext NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `fk_export_1_idx` (`export_category_id`), - CONSTRAINT `fk_export_export_category_id` FOREIGN KEY (`export_category_id`) REFERENCES `export_category` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; - -INSERT INTO `export` VALUES("1","thelia.export.mailing","1","1","Thelia\\ImportExport\\Export\\Type\\MailingExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("2","thelia.export.complete","2","1","Thelia\\ImportExport\\Export\\Type\\CustomerExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("3","thelia.export.prices","1","2","Thelia\\ImportExport\\Export\\Type\\ProductPricesExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("4","thelia.export.taxed_prices","2","2","Thelia\\ImportExport\\Export\\Type\\ProductTaxedPricesExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("5","thelia.export.product_seo","3","2","Thelia\\ImportExport\\Export\\Type\\ProductSEOExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("6","thelia.export.content","1","3","Thelia\\ImportExport\\Export\\Type\\ContentExport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export` VALUES("7","thelia.export.orders","1","4","Thelia\\ImportExport\\Export\\Type\\OrderExport","2017-02-28 18:21:41","2017-02-28 18:21:41"); - - - -DROP TABLE `export_category`; - -CREATE TABLE `export_category` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; - -INSERT INTO `export_category` VALUES("1","thelia.export.customer","1","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export_category` VALUES("2","thelia.export.products","2","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export_category` VALUES("3","thelia.export.content","3","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export_category` VALUES("4","thelia.export.orders","4","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `export_category` VALUES("5","thelia.export.modules","5","2017-02-28 18:21:40","2017-02-28 18:21:40"); - - - -DROP TABLE `export_category_i18n`; - -CREATE TABLE `export_category_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `export_category_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `export_category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `export_category_i18n` VALUES("1","en_US","Customers"); -INSERT INTO `export_category_i18n` VALUES("1","fr_FR","Clients"); -INSERT INTO `export_category_i18n` VALUES("2","en_US","Products"); -INSERT INTO `export_category_i18n` VALUES("2","fr_FR","Produits"); -INSERT INTO `export_category_i18n` VALUES("3","en_US","Content"); -INSERT INTO `export_category_i18n` VALUES("3","fr_FR","Contenu"); -INSERT INTO `export_category_i18n` VALUES("4","en_US","Orders"); -INSERT INTO `export_category_i18n` VALUES("4","fr_FR","Commandes"); -INSERT INTO `export_category_i18n` VALUES("5","en_US","Modules"); -INSERT INTO `export_category_i18n` VALUES("5","fr_FR","Modules"); - - - -DROP TABLE `export_i18n`; - -CREATE TABLE `export_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `export_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `export` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `export_i18n` VALUES("1","en_US","Mailing","Export the last name, first name and email address of the newsletter subscribers"); -INSERT INTO `export_i18n` VALUES("1","fr_FR","Mailing","Exporter le nom, prénom et adresse mail des abonnés à la newsletter"); -INSERT INTO `export_i18n` VALUES("2","en_US","Customers","Export all the information about your customers"); -INSERT INTO `export_i18n` VALUES("2","fr_FR","Clients","Exporter toutes les informations à propos de vos clients"); -INSERT INTO `export_i18n` VALUES("3","en_US","Product prices excluding taxes","Export the prices of the products excluding taxes"); -INSERT INTO `export_i18n` VALUES("3","fr_FR","Prix des produits Hors-Taxes","Exporter le prix hors taxes de vos produits"); -INSERT INTO `export_i18n` VALUES("4","en_US","Product prices including taxes","Export the prices of the products including taxes"); -INSERT INTO `export_i18n` VALUES("4","fr_FR","Prix des produits TTC","Exporter le prix TTC de vos produits"); -INSERT INTO `export_i18n` VALUES("5","en_US","Product SEO information","\n Export the SEO information ( rewritten url, meta description and keywords, page title ) of your products\n "); -INSERT INTO `export_i18n` VALUES("5","fr_FR","Informations SEO des produits","\n Exporter les informations SEO de vos produits\n ( url réécrites, meta description et mots clés, titre ) de vos produits\n "); -INSERT INTO `export_i18n` VALUES("6","en_US","Contents and folder","\n Export your contents and their related folders\n "); -INSERT INTO `export_i18n` VALUES("6","fr_FR","Contenus et dossiers","\n Exporter vos contenus et les dossiers associés\n "); -INSERT INTO `export_i18n` VALUES("7","en_US","Full orders","\n Export your orders\n "); -INSERT INTO `export_i18n` VALUES("7","fr_FR","Commandes complètes","\n Exporter vos commandes\n "); - - - -DROP TABLE `feature`; - -CREATE TABLE `feature` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` int(11) DEFAULT '0', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `feature` VALUES("1","0","1","2017-05-23 13:01:50","2017-05-27 17:20:32"); - - - -DROP TABLE `feature_av`; - -CREATE TABLE `feature_av` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `feature_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_feature_av_feature_id` (`feature_id`), - CONSTRAINT `fk_feature_av_feature_id` FOREIGN KEY (`feature_id`) REFERENCES `feature` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `feature_av` VALUES("1","1","1","2017-05-23 13:02:17","2017-05-27 17:20:32"); - - - -DROP TABLE `feature_av_i18n`; - -CREATE TABLE `feature_av_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `feature_av_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `feature_av` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `feature_av_i18n` VALUES("1","fr_FR","Oui","","",""); - - - -DROP TABLE `feature_i18n`; - -CREATE TABLE `feature_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `feature_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `feature` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `feature_i18n` VALUES("1","fr_FR","PoidsEtUnite","","",""); - - - -DROP TABLE `feature_product`; - -CREATE TABLE `feature_product` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `feature_id` int(11) NOT NULL, - `feature_av_id` int(11) DEFAULT NULL, - `free_text_value` text, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_feature_prod_product_id` (`product_id`), - KEY `idx_feature_prod_feature_id` (`feature_id`), - KEY `idx_feature_prod_feature_av_id` (`feature_av_id`), - KEY `idx_feature_product_product_id_feature_id_position` (`product_id`,`feature_id`,`position`), - CONSTRAINT `fk_feature_prod_feature_av_id` FOREIGN KEY (`feature_av_id`) REFERENCES `feature_av` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_feature_prod_feature_id` FOREIGN KEY (`feature_id`) REFERENCES `feature` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_feature_prod_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `feature_template`; - -CREATE TABLE `feature_template` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `feature_id` int(11) NOT NULL, - `template_id` int(11) NOT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_feature_template_id` (`feature_id`), - KEY `fk_feature_template_idx` (`template_id`), - KEY `idx_feature_template_template_id_position` (`template_id`,`position`), - CONSTRAINT `fk_feature_template` FOREIGN KEY (`template_id`) REFERENCES `template` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_feature_template_id` FOREIGN KEY (`feature_id`) REFERENCES `feature` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `feature_template` VALUES("1","1","1","1","2017-05-23 13:01:51","2017-05-23 13:01:51"); -INSERT INTO `feature_template` VALUES("2","1","2","1","2017-05-23 13:01:51","2017-05-23 13:01:51"); - - - -DROP TABLE `folder`; - -CREATE TABLE `folder` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `parent` int(11) NOT NULL DEFAULT '0', - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `folder` VALUES("1","0","1","1","2017-05-11 23:48:09","2017-05-23 13:02:54","1","2017-05-11 23:48:09",""); - - - -DROP TABLE `folder_document`; - -CREATE TABLE `folder_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `folder_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_folder_document_folder_id` (`folder_id`), - CONSTRAINT `fk_folder_document_folder_id` FOREIGN KEY (`folder_id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `folder_document_i18n`; - -CREATE TABLE `folder_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `folder_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `folder_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `folder_i18n`; - -CREATE TABLE `folder_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `folder_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `folder_i18n` VALUES("1","fr_FR","Taille de nos pots","","","","","",""); - - - -DROP TABLE `folder_image`; - -CREATE TABLE `folder_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `folder_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_folder_image_folder_id` (`folder_id`), - KEY `idx_folder_image_folder_id_position` (`folder_id`,`position`), - CONSTRAINT `fk_folder_image_folder_id` FOREIGN KEY (`folder_id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `folder_image_i18n`; - -CREATE TABLE `folder_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `folder_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `folder_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `folder_version`; - -CREATE TABLE `folder_version` ( - `id` int(11) NOT NULL, - `parent` int(11) NOT NULL DEFAULT '0', - `visible` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `folder_version_FK_1` FOREIGN KEY (`id`) REFERENCES `folder` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `folder_version` VALUES("1","0","1","1","2017-05-11 23:48:09","2017-05-11 23:48:09","1","2017-05-11 23:48:09",""); - - - -DROP TABLE `form_firewall`; - -CREATE TABLE `form_firewall` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `form_name` varchar(255) NOT NULL, - `ip_address` varchar(15) NOT NULL, - `attempts` tinyint(4) DEFAULT '1', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_form_firewall_form_name` (`form_name`), - KEY `idx_form_firewall_ip_address` (`ip_address`) -) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; - -INSERT INTO `form_firewall` VALUES("4","thelia_customer_create","78.210.220.249","1","2017-03-02 16:04:43","2017-03-02 16:04:43"); -INSERT INTO `form_firewall` VALUES("16","thelia_customer_login","78.210.220.249","1","2017-05-27 17:11:18","2017-05-27 17:11:18"); -INSERT INTO `form_firewall` VALUES("27","thelia_admin_login","::1","1","2017-06-15 13:13:27","2017-06-15 13:13:27"); - - - -DROP TABLE `free_shipping`; - -CREATE TABLE `free_shipping` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `area_id` int(11) NOT NULL, - `amount` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `FI_area_associated_freeShipping_area_id` (`area_id`), - CONSTRAINT `fk_area_associated_freeShipping_area_id` FOREIGN KEY (`area_id`) REFERENCES `area` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `hook`; - -CREATE TABLE `hook` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(255) NOT NULL, - `type` tinyint(4) DEFAULT NULL, - `by_module` tinyint(1) DEFAULT NULL, - `native` tinyint(1) DEFAULT NULL, - `activate` tinyint(1) DEFAULT NULL, - `block` tinyint(1) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`,`type`), - KEY `idx_module_activate` (`activate`) -) ENGINE=InnoDB AUTO_INCREMENT=3027 DEFAULT CHARSET=utf8; - -INSERT INTO `hook` VALUES("1","order-invoice.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2","order-invoice.delivery-address","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3","order-invoice.payment-extra","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("4","order-invoice.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("5","order-invoice.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("6","order-invoice.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("7","order-invoice.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("8","order-payment-gateway.body","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("9","order-payment-gateway.javascript","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("10","order-payment-gateway.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("11","order-payment-gateway.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("12","order-payment-gateway.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("13","sitemap.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("14","currency.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("15","currency.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("16","currency.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("17","currency.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("18","currency.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("19","login.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("20","login.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("21","login.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("22","login.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("23","login.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("24","login.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("25","login.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("26","login.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("27","login.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("28","account-update.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("29","account-update.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("30","account-update.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("31","account-update.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("32","account-update.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("33","account-update.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("34","account-update.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("35","cart.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("36","cart.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("37","cart.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("38","cart.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("39","cart.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("40","contact.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("41","contact.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("42","contact.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("43","contact.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("44","contact.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("45","contact.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("46","contact.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("47","order-placed.body","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("48","order-placed.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("49","order-placed.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("50","order-placed.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("51","search.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("52","search.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("53","search.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("54","register.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("55","register.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("56","register.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("57","register.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("58","register.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("59","register.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("60","register.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("61","password.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("62","password.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("63","password.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("64","password.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("65","password.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("66","password.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("67","password.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("68","language.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("69","language.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("70","language.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("71","language.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("72","language.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("73","contact.success","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("74","newsletter.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("75","newsletter.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("76","newsletter.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("77","newsletter.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("78","newsletter.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("79","badresponseorder.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("80","badresponseorder.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("81","badresponseorder.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("82","content.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("83","content.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("84","content.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("85","content.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("86","content.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("87","content.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("88","content.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("89","main.head-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("90","main.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("91","main.head-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("92","main.body-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("93","main.header-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("94","main.navbar-secondary","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("95","main.navbar-primary","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("96","main.header-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("97","main.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("98","main.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("99","main.footer-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("100","main.footer-body","1","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("101","main.footer-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("102","main.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("103","main.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("104","main.body-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("105","404.content","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("106","404.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("107","404.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("108","404.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("109","order-delivery.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("110","order-delivery.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("111","order-delivery.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("112","order-delivery.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("113","order-delivery.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("114","order-delivery.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("115","order-delivery.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("116","address-create.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("117","address-create.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("118","address-create.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("119","address-create.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("120","address-create.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("121","address-create.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("122","address-create.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("123","folder.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("124","folder.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("125","folder.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("126","folder.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("127","folder.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("128","folder.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("129","folder.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("130","order-failed.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("131","order-failed.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("132","order-failed.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("133","order-failed.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("134","order-failed.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("135","category.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("136","category.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("137","category.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("138","category.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("139","category.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("140","category.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("141","category.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("142","address-update.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("143","address-update.form-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("144","address-update.form-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("145","address-update.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("146","address-update.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("147","address-update.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("148","address-update.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("149","home.body","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("150","home.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("151","home.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("152","home.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("153","account-password.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("154","account-password.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("155","account-password.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("156","account-password.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("157","account-password.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("158","product.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("159","product.gallery","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("160","product.details-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("161","product.details-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("162","product.additional","1","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("163","product.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("164","product.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("165","product.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("166","product.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("167","account.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("168","account.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("169","account.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("170","account.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("171","account.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("172","viewall.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("173","viewall.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("174","viewall.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("175","viewall.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("176","viewall.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("177","singleproduct.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("178","singleproduct.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("179","category.sidebar-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("180","category.sidebar-body","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("181","category.sidebar-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("182","content.sidebar-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("183","content.sidebar-body","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("184","content.sidebar-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("185","order-delivery.extra","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("186","order-delivery.javascript","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("187","category.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("188","category.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("189","content.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("190","content.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("191","folder.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("192","folder.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("193","brand.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("194","brand.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("195","brand.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("196","brand.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("197","brand.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("198","brand.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("199","brand.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("200","brand.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("201","brand.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("202","brand.sidebar-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("203","brand.sidebar-body","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("204","brand.sidebar-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("205","account-order.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("206","account-order.information","1","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("207","account-order.after-information","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("208","account-order.delivery-information","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("209","account-order.delivery-address","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("210","account-order.invoice-information","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("211","account-order.invoice-address","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("212","account-order.after-addresses","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("213","account-order.products-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("214","account-order.product-extra","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("215","account-order.products-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("216","account-order.after-products","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("217","account-order.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("218","account-order.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("219","account-order.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("220","account-order.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("221","account.additional","1","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("222","account-order.product","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("223","mini-cart","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("224","sale.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("225","sale.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("226","sale.main-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("227","sale.main-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("228","sale.content-top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("229","sale.content-bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("230","sale.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("231","sale.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("232","sale.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("233","account-order.invoice-address-bottom","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("234","account-order.delivery-address-bottom","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("235","newsletter-unsubscribe.top","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("236","newsletter-unsubscribe.bottom","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("237","newsletter-unsubscribe.stylesheet","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("238","newsletter-unsubscribe.after-javascript-include","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("239","newsletter-unsubscribe.javascript-initialization","1","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1000","category.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1001","content.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1002","folder.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1003","order.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1004","product.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1005","features-value.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1006","features-value.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1007","feature.value-create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1008","feature.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1009","product.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1010","coupon.create-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1011","taxes.update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1012","tax-rule.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1013","tools.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1014","tools.col1-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1015","tools.col1-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1016","tools.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1017","tools.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1018","messages.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1019","messages.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1020","messages.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1021","messages.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1022","message.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1023","message.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1024","messages.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1025","taxes-rules.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1026","taxes-rules.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1027","tax.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1028","tax.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1029","tax-rule.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1030","tax-rule.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1031","taxes-rules.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1032","exports.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1033","exports.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1034","exports.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1035","exports.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1036","export.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1037","product.folders-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1038","product.folders-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1039","product.details-pricing-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1040","product.details-details-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1041","product.details-promotion-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1042","product.before-combinations","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1043","product.combinations-list-caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1044","product.after-combinations","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1045","product.combination-delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1046","modules.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1047","modules.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1048","currency.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1049","category.contents-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1050","category.contents-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1051","category.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1052","document.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1053","customer.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1054","customers.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1055","customers.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1056","customers.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1057","customer.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1058","customer.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1059","customer.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1060","customers.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1061","product.contents-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1062","product.contents-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1063","product.accessories-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1064","product.accessories-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1065","product.categories-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1066","product.categories-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1067","product.attributes-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1068","product.attributes-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1069","product.features-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1070","product.features-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1071","template.attributes-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1072","template.attributes-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1073","template.features-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1074","template.features-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1075","templates.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1076","templates.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1077","templates.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1078","templates.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1079","template.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1080","template.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1081","templates.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1082","configuration.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1083","configuration.catalog-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1084","configuration.catalog-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1085","configuration.shipping-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1086","configuration.shipping-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1087","configuration.system-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1088","configuration.system-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1089","configuration.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1090","configuration.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1091","index.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1092","index.middle","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1093","index.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1094","orders.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1095","orders.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1096","orders.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1097","orders.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1098","orders.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1099","shipping-zones.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1100","shipping-zones.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1101","shipping-zones.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1102","shipping-zones.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1103","shipping-zones.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1104","content.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1105","home.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1106","home.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1107","home.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1108","modules.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1109","modules.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1110","modules.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1111","languages.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1112","languages.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1113","language.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1114","languages.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1115","languages.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1116","zone.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1117","shipping-zones.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1118","system.logs-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1119","search.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1120","search.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1121","search.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1122","administrators.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1123","administrators.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1124","administrator.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1125","administrator.update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1126","administrator.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1127","administrators.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1128","module-hook.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1129","shipping-configuration.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1130","shipping-configuration.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1131","shipping-configuration.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1132","shipping-configuration.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1133","shipping-configuration.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1134","shipping-configuration.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1135","shipping-configuration.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1136","features.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1137","features.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1138","features.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1139","features.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1140","feature.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1141","feature.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1142","feature.add-to-all-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1143","feature.remove-to-all-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1144","features.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1145","module.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1146","module-hook.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1147","module-hook.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1148","module-hook.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1149","shipping-configuration.edit","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1150","shipping-configuration.country-delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1151","shipping-configuration.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1152","mailing-system.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1153","mailing-system.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1154","mailing-system.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1155","categories.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1156","categories.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1157","categories.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1158","categories.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1159","products.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1160","products.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1161","products.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1162","categories.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1163","categories.catalog-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1164","category.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1165","product.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1166","category.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1167","product.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1168","categories.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1169","variables.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1170","variables.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1171","variables.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1172","variables.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1173","variable.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1174","variable.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1175","variables.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1176","order.product-list","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1177","order.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1178","config-store.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1179","translations.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1180","folders.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1181","folders.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1182","folders.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1183","folders.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1184","contents.caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1185","contents.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1186","contents.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1187","folders.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1188","folder.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1189","content.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1190","folder.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1191","content.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1192","folders.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1193","template.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1194","tax.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1195","hook.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1196","countries.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1197","countries.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1198","countries.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1199","countries.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1200","country.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1201","country.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1202","countries.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1203","currencies.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1204","currencies.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1205","currencies.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1206","currencies.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1207","currency.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1208","currency.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1209","currencies.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1210","customer.edit","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1211","customer.address-create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1212","customer.address-update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1213","customer.address-delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1214","customer.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1215","attributes-value.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1216","attributes-value.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1217","attribute-value.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1218","attribute.id-delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1219","attribute.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1220","profiles.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1221","profiles.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1222","profile.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1223","profile.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1224","profiles.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1225","country.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1226","profile.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1227","variable.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1228","coupon.update-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1229","coupon.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1230","coupon.list-caption","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1231","coupon.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1232","coupon.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1233","coupon.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1234","coupon.list-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1235","module.configuration","2","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1236","module.config-js","2","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1237","message.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1238","image.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1239","attributes.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1240","attributes.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1241","attributes.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1242","attributes.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1243","attribute.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1244","attribute.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1245","attribute.add-to-all-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1246","attribute.remove-to-all-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1247","attributes.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1248","admin-logs.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1249","admin-logs.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1250","admin-logs.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1251","folder.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1252","hooks.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1253","hooks.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1254","hooks.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1255","hooks.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1256","hook.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1257","hook.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1258","hooks.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1259","main.head-css","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1260","main.before-topbar","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1261","main.inside-topbar","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1262","main.after-topbar","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1263","main.before-top-menu","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1264","main.in-top-menu-items","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1265","main.after-top-menu","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1266","main.before-footer","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1267","main.in-footer","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1268","main.after-footer","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1269","main.footer-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1270","main.topbar-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1271","main.topbar-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1272","main.top-menu-customer","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1273","main.top-menu-order","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1274","main.top-menu-catalog","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1275","main.top-menu-content","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1276","main.top-menu-tools","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1277","main.top-menu-modules","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1278","main.top-menu-configuration","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1279","brand.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1280","home.block","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1281","brands.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1282","brands.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1283","brands.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1284","brands.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1285","brand.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1286","brand.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1287","brand.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1288","imports.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1289","imports.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1290","imports.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1291","imports.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1292","import.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1293","brand.tab-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1294","customer.orders-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1295","customer.orders-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1296","sales.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1297","sales.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1298","sales.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1299","sales.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1300","sale.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1301","sale.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1302","sales.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1303","product.combinations-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1304","main.before-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1305","main.after-content","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1306","category.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1307","product.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1308","folder.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1309","content.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1310","brand.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1311","order-edit.bill-delivery-address","2","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1312","product.modification.form_top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1313","product.modification.form_bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1314","brand.update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1315","sale.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1316","api.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1317","api.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1318","api.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1319","coupon.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1320","order.tab","2","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1321","profile.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1322","profile.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1323","import.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1324","import.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1325","export.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1326","export.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1327","category-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1328","category-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1329","brand-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1330","brand-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1331","attribute-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1332","attribute-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1333","currency-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1334","currency-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1335","country-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1336","country-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1337","content-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1338","content-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1339","feature-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1340","feature-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1341","document-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1342","document-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1343","customer-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1344","customer-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1345","image-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1346","image-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1347","hook-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1348","hook-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1349","folder-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1350","folder-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1351","module-hook-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1352","module-hook-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1353","module-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1354","module-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1355","message-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1356","message-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1357","profile-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1358","profile-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1359","product-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1360","product-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1361","order-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1362","order-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1363","shipping-zones-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1364","shipping-zones-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1365","shipping-configuration-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1366","shipping-configuration-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1367","sale-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1368","sale-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1369","variables-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1370","variables-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1371","template-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1372","template-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1373","tax-rule-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1374","tax-rule-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1375","tax-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1376","tax-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1377","order-edit.product-list","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1378","tab-seo.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1379","tab-seo.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1380","tab-image.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1381","tab-image.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1382","tab-document.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1383","tab-document.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1384","export.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1385","export.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1386","order-edit.customer-information-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1387","order-edit.payment-module-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1388","order-edit.delivery-module-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1389","tab-seo.update-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1390","order-edit.order-product-table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1391","order-edit.order-product-table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1392","administrators.header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1393","administrators.row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1394","advanced-configuration","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1395","advanced-configuration.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1396","brand.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1397","brand.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1398","category.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1399","category.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1400","content.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1401","content.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1402","folder.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1403","folder.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1404","product.modification.form-right.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1405","product.modification.form-right.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1406","state-edit.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1407","state-edit.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1408","state.edit-js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1409","states.top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1410","states.table-header","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1411","states.table-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1412","states.bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1413","state.create-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1414","state.delete-form","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("1415","states.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2001","invoice.css","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2002","invoice.header","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2003","invoice.footer-top","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2004","invoice.imprint","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2005","invoice.footer-bottom","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2006","invoice.information","3","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2007","invoice.after-information","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2008","invoice.delivery-address","3","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2009","invoice.after-addresses","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2010","invoice.after-products","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2011","invoice.after-summary","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2012","delivery.css","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2013","delivery.header","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2014","delivery.footer-top","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2015","delivery.imprint","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2016","delivery.footer-bottom","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2017","delivery.information","3","0","1","1","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2018","delivery.after-information","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2019","delivery.delivery-address","3","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2020","delivery.after-addresses","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2021","delivery.after-summary","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2022","order-placed.additional-payment-info","1","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2023","wysiwyg.js","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2024","order-edit.cart-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2025","order-edit.cart-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2026","order-edit.bill-top","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2027","order-edit.bill-bottom","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2028","order-edit.before-order-product-list","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2029","order-edit.before-order-product-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2030","order-edit.after-order-product-row","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2031","order-edit.after-order-product-list","2","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2032","invoice.after-payment-module","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2033","invoice.after-delivery-module","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2034","delivery.after-delivery-module","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2035","invoice.order-product","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("2036","delivery.order-product","3","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3000","email-html.layout.css","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3001","email-html.layout.footer","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3002","email-html.order-confirmation.before-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3003","email-html.order-confirmation.delivery-address","4","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3004","email-html.order-confirmation.after-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3005","email-html.order-confirmation.order-product","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3006","email-html.order-confirmation.before-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3007","email-html.order-confirmation.after-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3008","email-html.order-confirmation.footer","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3009","email-html.order-notification.before-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3010","email-html.order-notification.delivery-address","4","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3011","email-html.order-notification.after-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3012","email-html.order-notification.order-product","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3013","email-html.order-notification.before-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3014","email-html.order-notification.after-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3015","email-txt.order-confirmation.before-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3016","email-txt.order-confirmation.delivery-address","4","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3017","email-txt.order-confirmation.after-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3018","email-txt.order-confirmation.order-product","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3019","email-txt.order-confirmation.before-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3020","email-txt.order-confirmation.after-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3021","email-txt.order-notification.before-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3022","email-txt.order-notification.delivery-address","4","1","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3023","email-txt.order-notification.after-address","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3024","email-txt.order-notification.order-product","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3025","email-txt.order-notification.before-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `hook` VALUES("3026","email-txt.order-notification.after-products","4","0","1","1","0","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `hook_i18n`; - -CREATE TABLE `hook_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `hook_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `hook` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `hook_i18n` VALUES("1","de_DE","Bezahlungsmethode - oben","",""); -INSERT INTO `hook_i18n` VALUES("1","en_US","Invoice choice - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1","es_ES","Opción de factura - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1","fr_FR","Choix du mode de paiement - en haut","",""); -INSERT INTO `hook_i18n` VALUES("2","de_DE","Bezahlungsmethode - Lieferadresse","",""); -INSERT INTO `hook_i18n` VALUES("2","en_US","Invoice choice - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("2","es_ES","Opción de factura - dirección de envío","",""); -INSERT INTO `hook_i18n` VALUES("2","fr_FR","Choix du mode de paiement - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3","de_DE","Bezahlungsmethode - extra payment zone","",""); -INSERT INTO `hook_i18n` VALUES("3","en_US","Invoice choice - extra payment zone","",""); -INSERT INTO `hook_i18n` VALUES("3","es_ES","Opción de factura - zona de pago extra","",""); -INSERT INTO `hook_i18n` VALUES("3","fr_FR","Choix du mode de paiement - zone de paiement supplémentaire","",""); -INSERT INTO `hook_i18n` VALUES("4","de_DE","Bezahlungsmethode - unten","",""); -INSERT INTO `hook_i18n` VALUES("4","en_US","Invoice choice - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("4","es_ES","Opción de factura - en la parte inferior de la factura","",""); -INSERT INTO `hook_i18n` VALUES("4","fr_FR","Choix du mode de paiement - en bas","",""); -INSERT INTO `hook_i18n` VALUES("5","de_DE","Bezahlungsmethode - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("5","en_US","Invoice choice - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("5","es_ES","Opción de factura - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("5","fr_FR","Choix du mode de paiement - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("6","de_DE","Bezahlungsmethode - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("6","en_US","Invoice choice - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("6","es_ES","Opción de factura - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("6","fr_FR","Choix du mode de paiement - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("7","de_DE","Bezahlungsmethode - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("7","en_US","Invoice choice - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("7","es_ES","Opción de factura - después de incluir javascript","",""); -INSERT INTO `hook_i18n` VALUES("7","fr_FR","Choix du mode de paiement - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("8","de_DE","Zahlung-Gateway - Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("8","en_US","Payment gateway - main area","",""); -INSERT INTO `hook_i18n` VALUES("8","es_ES","Pasarela de pago - área principal","",""); -INSERT INTO `hook_i18n` VALUES("8","fr_FR","Passerelle de paiement - zone principale","",""); -INSERT INTO `hook_i18n` VALUES("9","de_DE","Zahlung-Gateway - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("9","en_US","Payment gateway - javascript","",""); -INSERT INTO `hook_i18n` VALUES("9","es_ES","Pasarela de pago - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("9","fr_FR","Passerelle de paiement - javascript","",""); -INSERT INTO `hook_i18n` VALUES("10","de_DE","Zahlung-Gateway - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("10","en_US","Payment gateway - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("10","es_ES","Pasarela de pago - después de inicializar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("10","fr_FR","Passerelle de paiement - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("11","de_DE","Zahlung-Gateway - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("11","en_US","Payment gateway - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("11","es_ES","Pasarela de pago - Hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("11","fr_FR","Passerelle de paiement - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("12","de_DE","Zahlung-Gateway - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("12","en_US","Payment gateway - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("12","es_ES","Pasarela de pago - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("12","fr_FR","Passerelle de paiement - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("13","de_DE","Sitemap - unten","",""); -INSERT INTO `hook_i18n` VALUES("13","en_US","Sitemap - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("13","es_ES","Mapa de sitio - en la base","",""); -INSERT INTO `hook_i18n` VALUES("13","fr_FR","Sitemap - en bas","",""); -INSERT INTO `hook_i18n` VALUES("14","de_DE","Währungswahl-Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("14","en_US","Curency selection page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("14","es_ES","Página de selección de divisa - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("14","fr_FR","Page du choix de la device - en haut","",""); -INSERT INTO `hook_i18n` VALUES("15","de_DE","Währungswahl-Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("15","en_US","Curency selection page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("15","es_ES","Página de selección de divisa - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("15","fr_FR","Page du choix de la device - en bas","",""); -INSERT INTO `hook_i18n` VALUES("16","de_DE","Währungswahl-Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("16","en_US","Curency selection page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("16","es_ES","Página de selección de divisa - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("16","fr_FR","Page du choix de la device - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("17","de_DE","Währungswahl-Seite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("17","en_US","Curency selection page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("17","es_ES","Página de selección de divisa - después de inclusión javascript","",""); -INSERT INTO `hook_i18n` VALUES("17","fr_FR","Page du choix de la device - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("18","de_DE","Währungswahl-Seite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("18","en_US","Curency selection page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("18","es_ES","Página de selección de divisa - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("18","fr_FR","Page du choix de la device - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("19","de_DE","Anmeldeseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("19","en_US","Login page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("19","es_ES","Página de inicio de sesión - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("19","fr_FR","Page de connexion - en haut","",""); -INSERT INTO `hook_i18n` VALUES("20","de_DE","Anmeldeseite - oben an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("20","en_US","Login page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("20","es_ES","Página de inicio de sesión - en la parte superior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("20","fr_FR","Page de connexion - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("21","de_DE","Anmeldeseite - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("21","en_US","Login page - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("21","es_ES","Página de inicio de sesión - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("21","fr_FR","Page de connexion - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("22","de_DE","Anmeldeseite - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("22","en_US","Login page - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("22","es_ES","Página de inicio de sesión - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("22","fr_FR","Page de connexion - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("23","de_DE","Anmeldeseite - unten an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("23","en_US","Login page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("23","es_ES","Página de inicio de sesión - en la parte inferior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("23","fr_FR","Page de connexion - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("24","de_DE","Anmeldeseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("24","en_US","Login page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("24","es_ES","Página de inicio de sesión - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("24","fr_FR","Page de connexion - en bas","",""); -INSERT INTO `hook_i18n` VALUES("25","de_DE","Anmeldeseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("25","en_US","Login page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("25","es_ES","Página de inicio de sesión - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("25","fr_FR","Page de connexion - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("26","de_DE","Anmeldeseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("26","en_US","Login page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("26","es_ES","Página de inicio de sesión - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("26","fr_FR","Page de connexion - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("27","de_DE","Anmeldeseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("27","en_US","Login page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("27","es_ES","Página de inicio de sesión - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("27","fr_FR","Page de connexion - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("28","de_DE","Kundenkonto Änderung - oben","",""); -INSERT INTO `hook_i18n` VALUES("28","en_US","Update customer account - at the top","",""); -INSERT INTO `hook_i18n` VALUES("28","es_ES","Actualización de cuenta de cliente - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("28","fr_FR","Modification compte client - en haut","",""); -INSERT INTO `hook_i18n` VALUES("29","de_DE","Kundenkonto Änderung - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("29","en_US","Update customer account - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("29","es_ES","Actualización de cuenta de cliente - encabezado del formulario","",""); -INSERT INTO `hook_i18n` VALUES("29","fr_FR","Modification compte client - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("30","de_DE","Kundenkonto Änderung - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("30","en_US","Update customer account - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("30","es_ES","Actualización de cuenta de cliente - al pie del formulario","",""); -INSERT INTO `hook_i18n` VALUES("30","fr_FR","Modification compte client - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("31","de_DE","Kundenkonto Änderung - unten","",""); -INSERT INTO `hook_i18n` VALUES("31","en_US","Update customer account - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("31","es_ES","Actualización de cuenta de cliente - al pie","",""); -INSERT INTO `hook_i18n` VALUES("31","fr_FR","Modification compte client - en bas","",""); -INSERT INTO `hook_i18n` VALUES("32","de_DE","Kundenkonto Änderung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("32","en_US","Update customer account - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("32","es_ES","Actualización de cuenta del cliente - Hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("32","fr_FR","Modification compte client - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("33","de_DE","Kundenkonto Änderung - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("33","en_US","Update customer account - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("33","es_ES","Actualización de cuenta del cliente - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("33","fr_FR","Modification compte client - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("34","de_DE","Kundenkonto Änderung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("34","en_US","Update customer account - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("34","es_ES","Actualización de cuenta de cliente - después de inicializar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("34","fr_FR","Modification compte client - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("35","de_DE","Warenkorb - oben ","",""); -INSERT INTO `hook_i18n` VALUES("35","en_US","Cart - at the top","",""); -INSERT INTO `hook_i18n` VALUES("35","es_ES","Carrito - En la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("35","fr_FR","Panier - en haut","",""); -INSERT INTO `hook_i18n` VALUES("36","de_DE","Warenkorb - unten","",""); -INSERT INTO `hook_i18n` VALUES("36","en_US","Cart - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("36","es_ES","Carrito - En la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("36","fr_FR","Panier - en bas","",""); -INSERT INTO `hook_i18n` VALUES("37","de_DE","Warenkorb - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("37","en_US","Cart - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("37","es_ES","Carro - después de inclusión javascript","",""); -INSERT INTO `hook_i18n` VALUES("37","fr_FR","Panier - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("38","de_DE","Warenkorb - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("38","en_US","Cart - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("38","es_ES","Carrito - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("38","fr_FR","Panier - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("39","de_DE","Warenkorb - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("39","en_US","Cart - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("39","es_ES","Carro - inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("39","fr_FR","Panier - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("40","de_DE","Kontaktseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("40","en_US","Contact page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("40","es_ES","Página de contacto - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("40","fr_FR","Page contact - en haut","",""); -INSERT INTO `hook_i18n` VALUES("41","de_DE","Kontaktseite - oben an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("41","en_US","Contact page - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("41","es_ES","Página de contacto - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("41","fr_FR","Page contact - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("42","de_DE","Kontaktseite - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("42","en_US","Contact page - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("42","es_ES","Página de contacto - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("42","fr_FR","Page contact - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("43","de_DE","Kontaktseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("43","en_US","Contact page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("43","es_ES","Página de contacto - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("43","fr_FR","Page contact - en bas","",""); -INSERT INTO `hook_i18n` VALUES("44","de_DE","Kontaktseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("44","en_US","Contact page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("44","es_ES","Página de contacto - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("44","fr_FR","Page contact - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("45","de_DE","Kontaktseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("45","en_US","Contact page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("45","es_ES","Página de contacto - después del include de javascript","",""); -INSERT INTO `hook_i18n` VALUES("45","fr_FR","Page contact - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("46","de_DE","Kontaktseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("46","en_US","Contact page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("46","es_ES","Página de contacto - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("46","fr_FR","Page contact - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("47","de_DE","Erteilten Auftrag - Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("47","en_US","Placed order - main area","",""); -INSERT INTO `hook_i18n` VALUES("47","es_ES","Orden registrada - área principal","",""); -INSERT INTO `hook_i18n` VALUES("47","fr_FR","Commande terminée - zone principale","",""); -INSERT INTO `hook_i18n` VALUES("48","de_DE","Erteilten Auftrag - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("48","en_US","Placed order - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("48","es_ES","Orden registrada - Hoja de estilo CSS","",""); -INSERT INTO `hook_i18n` VALUES("48","fr_FR","Commande terminée - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("49","de_DE","Erteilten Auftrag - nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("49","en_US","Placed order - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("49","es_ES","Orden registrada - después del javascript include","",""); -INSERT INTO `hook_i18n` VALUES("49","fr_FR","Commande terminée - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("50","de_DE","Erteilten Auftrag - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("50","en_US","Placed order - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("50","es_ES","Orden registrada - después de la inicialización de Javascript","",""); -INSERT INTO `hook_i18n` VALUES("50","fr_FR","Commande terminée - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("51","de_DE","Suche-Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("51","en_US","Search page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("51","es_ES","Página de búsqueda - Hoja de Estilos en Cascada","",""); -INSERT INTO `hook_i18n` VALUES("51","fr_FR","Page de recherche - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("52","de_DE","Suche-Seite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("52","en_US","Search page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("52","es_ES","Página de búsqueda - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("52","fr_FR","Page de recherche - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("53","de_DE","Suche-Seite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("53","en_US","Search page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("53","es_ES","Página de búsqueda - después de inicializar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("53","fr_FR","Page de recherche - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("54","de_DE","Konto-Erstellung - oben","",""); -INSERT INTO `hook_i18n` VALUES("54","en_US","Register - at the top","",""); -INSERT INTO `hook_i18n` VALUES("54","es_ES","Registro - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("54","fr_FR","Création de compte - en haut","",""); -INSERT INTO `hook_i18n` VALUES("55","de_DE","Konto-Erstellung - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("55","en_US","Register - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("55","es_ES","Registro - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("55","fr_FR","Création de compte - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("56","de_DE","Konto-Erstellung - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("56","en_US","Register - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("56","es_ES","Registro - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("56","fr_FR","Création de compte - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("57","de_DE","Konto-Erstellung - unten","",""); -INSERT INTO `hook_i18n` VALUES("57","en_US","Register - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("57","es_ES","Registro - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("57","fr_FR","Création de compte - en bas","",""); -INSERT INTO `hook_i18n` VALUES("58","de_DE","Konto-Erstellung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("58","en_US","Register - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("58","es_ES","Registro - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("58","fr_FR","Création de compte - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("59","de_DE","Konto-Erstellung - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("59","en_US","Register - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("59","es_ES","Registro - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("59","fr_FR","Création de compte - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("60","de_DE","Konto-Erstellung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("60","en_US","Register - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("60","es_ES","Registro - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("60","fr_FR","Création de compte - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("61","de_DE","Passwort verloren - oben","",""); -INSERT INTO `hook_i18n` VALUES("61","en_US","Lost password - at the top","",""); -INSERT INTO `hook_i18n` VALUES("61","es_ES","Contraseña perdida - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("61","fr_FR","Mot de passe perdu - en haut","",""); -INSERT INTO `hook_i18n` VALUES("62","de_DE","Passwort verloren - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("62","en_US","Lost password - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("62","es_ES","Contraseña perdida - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("62","fr_FR","Mot de passe perdu - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("63","de_DE","Passwort verloren - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("63","en_US","Lost password - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("63","es_ES","Contraseña perdida - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("63","fr_FR","Mot de passe perdu - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("64","de_DE","Passwort verloren - unten","",""); -INSERT INTO `hook_i18n` VALUES("64","en_US","Lost password - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("64","es_ES","Contraseña perdida - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("64","fr_FR","Mot de passe perdu - en bas","",""); -INSERT INTO `hook_i18n` VALUES("65","de_DE","Passwort verloren - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("65","en_US","Lost password - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("65","es_ES","Contraseña perdida - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("65","fr_FR","Mot de passe perdu - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("66","de_DE","Passwort verloren - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("66","en_US","Lost password - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("66","es_ES","Contraseña perdida - después de incluir javascript","",""); -INSERT INTO `hook_i18n` VALUES("66","fr_FR","Mot de passe perdu - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("67","de_DE","Passwort verloren - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("67","en_US","Lost password - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("67","es_ES","Contraseña perdida - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("67","fr_FR","Mot de passe perdu - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("68","de_DE","Sprachwahl Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("68","en_US","language selection page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("68","es_ES","página de selección de idioma - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("68","fr_FR","Page du choix du langage - en haut","",""); -INSERT INTO `hook_i18n` VALUES("69","de_DE","Sprachwahl Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("69","en_US","language selection page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("69","es_ES","página de selección de idioma - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("69","fr_FR","Page du choix du langage - en bas","",""); -INSERT INTO `hook_i18n` VALUES("70","de_DE","Sprachwahl Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("70","en_US","language selection page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("70","es_ES","página de selección de idioma - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("70","fr_FR","Page du choix du langage - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("71","de_DE","Sprachwahl Seite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("71","en_US","language selection page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("71","es_ES","página de selección de idioma - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("71","fr_FR","Page du choix du langage - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("72","de_DE","Sprachwahl Seite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("72","en_US","language selection page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("72","es_ES","página de selección de idioma - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("72","fr_FR","Page du choix du langage - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("73","de_DE","Kontaktseite - wenn erfolgreich","",""); -INSERT INTO `hook_i18n` VALUES("73","en_US","Contact page - if successful response","",""); -INSERT INTO `hook_i18n` VALUES("73","es_ES","Página de contacto - si la respuesta es exitosa","",""); -INSERT INTO `hook_i18n` VALUES("73","fr_FR","Page contact - en cas de succès","",""); -INSERT INTO `hook_i18n` VALUES("74","de_DE","Newletter-Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("74","en_US","Newsletter page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("74","es_ES","Página del boletín de noticias - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("74","fr_FR","Page newsletter - en haut","",""); -INSERT INTO `hook_i18n` VALUES("75","de_DE","Newletter-Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("75","en_US","Newsletter page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("75","es_ES","Página del boletín de noticias - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("75","fr_FR","Page newsletter - en bas","",""); -INSERT INTO `hook_i18n` VALUES("76","de_DE","Newletter-Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("76","en_US","Newsletter page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("76","es_ES","Página del boletín de noticias - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("76","fr_FR","Page newsletter - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("77","de_DE","Newletter-Seite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("77","en_US","Newsletter page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("77","es_ES","Página del boletín de noticias - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("77","fr_FR","Page newsletter - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("78","de_DE","Newletter-Seite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("78","en_US","Newsletter page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("78","es_ES","Página del boletín de noticias - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("78","fr_FR","Page newsletter - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("79","de_DE","Bezahlungs-Fehlschlagen - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("79","en_US","Payment failed - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("79","es_ES","Pago erróneo - Hoja de Estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("79","fr_FR","Échec du paiement - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("80","de_DE","Bezahlungs-Fehlschlagen - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("80","en_US","Payment failed - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("80","es_ES","Pago erróneo - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("80","fr_FR","Echec du paiement - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("81","de_DE","Bezahlungs-Fehlschlagen - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("81","en_US","Payment failed - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("81","es_ES","Pago erróneo - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("81","fr_FR","Echec du paiement - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("82","de_DE","Inhaltseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("82","en_US","Content page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("82","es_ES","Página de contacto - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("82","fr_FR","Page de contenu - en haut","",""); -INSERT INTO `hook_i18n` VALUES("83","de_DE","Inhaltseite - oben an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("83","en_US","Content page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("83","es_ES","Página de contenido - en la parte superior de la zona principal","",""); -INSERT INTO `hook_i18n` VALUES("83","fr_FR","Page de contenu - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("84","de_DE","Inhaltseite - unten an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("84","en_US","Content page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("84","es_ES","Página de contenido - en la parte inferior de la zona principal","",""); -INSERT INTO `hook_i18n` VALUES("84","fr_FR","Page de contenu - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("85","de_DE","Inhaltseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("85","en_US","Content page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("85","es_ES","Página de contacto - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("85","fr_FR","Page de contenu - en bas","",""); -INSERT INTO `hook_i18n` VALUES("86","de_DE","Inhaltseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("86","en_US","Content page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("86","es_ES","Página de contacto - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("86","fr_FR","Page de contenu - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("87","de_DE","Inhaltseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("87","en_US","Content page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("87","es_ES","Página de contacto - después del include de javascript","",""); -INSERT INTO `hook_i18n` VALUES("87","fr_FR","Page de contenu - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("88","de_DE","Inhaltseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("88","en_US","Content page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("88","es_ES","Página de contacto - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("88","fr_FR","Page de contenu - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("89","de_DE","HTML Struktur - nach der Eröffnung des Head-Tag","",""); -INSERT INTO `hook_i18n` VALUES("89","en_US","HTML layout - after the opening of the head tag","",""); -INSERT INTO `hook_i18n` VALUES("89","es_ES","Diseño HTML - después de la etiqueta head de apertura","",""); -INSERT INTO `hook_i18n` VALUES("89","fr_FR","Structure HTML - après l\'ouverture de la balise head","",""); -INSERT INTO `hook_i18n` VALUES("90","de_DE","HTML Struktur - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("90","en_US","HTML layout - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("90","es_ES","Diseño HTML - hojas de estilo CSS","",""); -INSERT INTO `hook_i18n` VALUES("90","fr_FR","Structure HTML - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("91","de_DE","HTML Struktur - vor dem Ende des Head-Tag","",""); -INSERT INTO `hook_i18n` VALUES("91","en_US","HTML layout - before the end of the head tag","",""); -INSERT INTO `hook_i18n` VALUES("91","es_ES","Diseño HTML - antes de la etiqueta head de cierre","",""); -INSERT INTO `hook_i18n` VALUES("91","fr_FR","Structure HTML - avant la fin de la balise head","",""); -INSERT INTO `hook_i18n` VALUES("92","de_DE","HTML Struktur - nach der Eröffnung des Body-Tag","",""); -INSERT INTO `hook_i18n` VALUES("92","en_US","HTML layout - after the opening of the body tag","",""); -INSERT INTO `hook_i18n` VALUES("92","es_ES","Diseño HTML - después de la etiqueta body de apertura","",""); -INSERT INTO `hook_i18n` VALUES("92","fr_FR","Structure HTML - après l\'ouverture de la balise body","",""); -INSERT INTO `hook_i18n` VALUES("93","de_DE","HTML Struktur - oben an dem Header","",""); -INSERT INTO `hook_i18n` VALUES("93","en_US","HTML layout - at the top of the header","",""); -INSERT INTO `hook_i18n` VALUES("93","es_ES","Diseño HTML - en la parte superior de la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("93","fr_FR","Structure HTML - en haut du header","",""); -INSERT INTO `hook_i18n` VALUES("94","de_DE","HTML Struktur - Sekundärenavigation","",""); -INSERT INTO `hook_i18n` VALUES("94","en_US","HTML layout - secondary navigation","",""); -INSERT INTO `hook_i18n` VALUES("94","es_ES","Diseño HTML - navegación secundaria","",""); -INSERT INTO `hook_i18n` VALUES("94","fr_FR","Structure HTML - navigation secondaire","",""); -INSERT INTO `hook_i18n` VALUES("95","de_DE","HTML Struktur - Hauptnavigation","",""); -INSERT INTO `hook_i18n` VALUES("95","en_US","HTML layout - primary navigation","",""); -INSERT INTO `hook_i18n` VALUES("95","es_ES","Diseño HTML - navegación principal","",""); -INSERT INTO `hook_i18n` VALUES("95","fr_FR","Structure HTML - navigation principale","",""); -INSERT INTO `hook_i18n` VALUES("96","de_DE","HTML Struktur - unten an dem Header","",""); -INSERT INTO `hook_i18n` VALUES("96","en_US","HTML layout - at the bottom of the header","",""); -INSERT INTO `hook_i18n` VALUES("96","es_ES","Diseño HTML - en la parte inferior de la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("96","fr_FR","Structure HTML - en bas du header","",""); -INSERT INTO `hook_i18n` VALUES("97","de_DE","HTML Struktur - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("97","en_US","HTML layout - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("97","es_ES","Diseño HTML - antes el área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("97","fr_FR","Structure HTML - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("98","de_DE","HTML Struktur - nach dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("98","en_US","HTML layout - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("98","es_ES","Diseño HTML - después del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("98","fr_FR","Structure HTML - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("99","de_DE","HTML Struktur - oben an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("99","en_US","HTML layout - at the top of the footer","",""); -INSERT INTO `hook_i18n` VALUES("99","es_ES","Diseño HTML - en la parte superior del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("99","fr_FR","Structure HTML - en haut du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("100","de_DE","HTML Struktur - Footer Body","",""); -INSERT INTO `hook_i18n` VALUES("100","en_US","HTML layout - footer body","",""); -INSERT INTO `hook_i18n` VALUES("100","es_ES","Diseño HTML - cuerpo del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("100","fr_FR","Structure HTML - corps du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("101","de_DE","HTML Struktur - unten an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("101","en_US","HTML layout - bottom of the footer","",""); -INSERT INTO `hook_i18n` VALUES("101","es_ES","Diseño HTML - parte inferior del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("101","fr_FR","Structure HTML - en bas du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("102","de_DE","HTML Struktur - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("102","en_US","HTML layout - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("102","es_ES","Diseño HTML - después de incluir javascript","",""); -INSERT INTO `hook_i18n` VALUES("102","fr_FR","Structure HTML - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("103","de_DE","HTML Struktur - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("103","en_US","HTML layout - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("103","es_ES","Diseño HTML - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("103","fr_FR","Structure HTML - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("104","de_DE","HTML Struktur - vor dem Ende des Body-Tag","",""); -INSERT INTO `hook_i18n` VALUES("104","en_US","HTML layout - before the end body tag","",""); -INSERT INTO `hook_i18n` VALUES("104","es_ES","Diseño HTML - antes de la etiqueta body de cierre","",""); -INSERT INTO `hook_i18n` VALUES("104","fr_FR","Structure HTML - avant la fin de la balise body","",""); -INSERT INTO `hook_i18n` VALUES("105","de_DE","Seite nicht gefunden - Inhalts-Bereich","",""); -INSERT INTO `hook_i18n` VALUES("105","en_US","Page 404 - content area","",""); -INSERT INTO `hook_i18n` VALUES("105","es_ES","Página 404 - área de contenido","",""); -INSERT INTO `hook_i18n` VALUES("105","fr_FR","Page introuvable - zone de contenu","",""); -INSERT INTO `hook_i18n` VALUES("106","de_DE","Seite nicht gefunden - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("106","en_US","Page 404 - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("106","es_ES","Página 404 - CSS Hoja de estilos","",""); -INSERT INTO `hook_i18n` VALUES("106","fr_FR","Page introuvable - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("107","de_DE","Seite nicht gefunden - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("107","en_US","Page 404 - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("107","es_ES","Página 404 - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("107","fr_FR","Page introuvable - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("108","de_DE","Seite nicht gefunden - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("108","en_US","Page 404 - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("108","es_ES","Página 404 - después de inicializar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("108","fr_FR","Page introuvable - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("109","de_DE","Lieferwahl - oben","",""); -INSERT INTO `hook_i18n` VALUES("109","en_US","Delivery choice - at the top","",""); -INSERT INTO `hook_i18n` VALUES("109","es_ES","Opción de entrega - en la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("109","fr_FR","Choix du transporteur - en haut","",""); -INSERT INTO `hook_i18n` VALUES("110","de_DE","Lieferwahl - oben an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("110","en_US","Delivery choice - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("110","es_ES","Opción de entrega - en la cabecera del formulario","",""); -INSERT INTO `hook_i18n` VALUES("110","fr_FR","Choix du transporteur - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("111","de_DE","Lieferwahl - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("111","en_US","Delivery choice - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("111","es_ES","Opción de entrega - en el pie del formulario","",""); -INSERT INTO `hook_i18n` VALUES("111","fr_FR","Choix du transporteur - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("112","de_DE","Lieferwahl - unten","",""); -INSERT INTO `hook_i18n` VALUES("112","en_US","Delivery choice - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("112","es_ES","Elección de entrega - en el pie","",""); -INSERT INTO `hook_i18n` VALUES("112","fr_FR","Choix du transporteur - en bas","",""); -INSERT INTO `hook_i18n` VALUES("113","de_DE","Lieferwahl - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("113","en_US","Delivery choice - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("113","es_ES","Opción de entrega - despues de inicializar el javascript","",""); -INSERT INTO `hook_i18n` VALUES("113","fr_FR","Choix du transporteur - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("114","de_DE","Lieferwahl - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("114","en_US","Delivery choice - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("114","es_ES","Opción de entrega - CSS","",""); -INSERT INTO `hook_i18n` VALUES("114","fr_FR","Choix du transporteur - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("115","de_DE","Lieferwahl - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("115","en_US","Delivery choice - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("115","es_ES","Opción de entrega - después de incluir el javascript","",""); -INSERT INTO `hook_i18n` VALUES("115","fr_FR","Choix du transporteur - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("116","de_DE","Adresse Erstellung - oben","",""); -INSERT INTO `hook_i18n` VALUES("116","en_US","Address creation - at the top","",""); -INSERT INTO `hook_i18n` VALUES("116","es_ES","Creación de dirección - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("116","fr_FR","Création d\'adresse - en haut","",""); -INSERT INTO `hook_i18n` VALUES("117","de_DE","Adresse Erstellung - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("117","en_US","Address creation - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("117","es_ES","Creación de dirección - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("117","fr_FR","Création d\'adresse - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("118","de_DE","Adresse Erstellung - unten im Formular","",""); -INSERT INTO `hook_i18n` VALUES("118","en_US","Address creation - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("118","es_ES","Creación de dirección - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("118","fr_FR","Création d\'adresse - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("119","de_DE","Adresse Erstellung - unten","",""); -INSERT INTO `hook_i18n` VALUES("119","en_US","Address creation - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("119","es_ES","Creación de dirección - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("119","fr_FR","Création d\'adresse - en bas","",""); -INSERT INTO `hook_i18n` VALUES("120","de_DE","Adresse Erstellung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("120","en_US","Address creation - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("120","es_ES","Creación de dirección - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("120","fr_FR","Création d\'adresse - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("121","de_DE","Adresse Erstellung - nach der Integration von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("121","en_US","Address creation - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("121","es_ES","Creación de dirección- después del include javascript","",""); -INSERT INTO `hook_i18n` VALUES("121","fr_FR","Création d\'adresse - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("122","de_DE","Adresse Erstellung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("122","en_US","Address creation - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("122","es_ES","Creación de dirección - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("122","fr_FR","Création d\'adresse - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("123","de_DE","Ordnerseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("123","en_US","Folder page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("123","es_ES","Carpeta de página - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("123","fr_FR","Page dossier - en haut","",""); -INSERT INTO `hook_i18n` VALUES("124","de_DE","Ordnerseite - oben an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("124","en_US","Folder page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("124","es_ES","Carpeta de página - en la parte superior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("124","fr_FR","Page dossier - en haut de la zone principale","",""); -INSERT INTO `hook_i18n` VALUES("125","de_DE","Ordnerseite - unten an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("125","en_US","Folder page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("125","es_ES","Carpeta de página - al final del área principal","",""); -INSERT INTO `hook_i18n` VALUES("125","fr_FR","Page dossier - en bas de la zone principale","",""); -INSERT INTO `hook_i18n` VALUES("126","de_DE","Ordnerseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("126","en_US","Folder page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("126","es_ES","Carpeta de página - al final","",""); -INSERT INTO `hook_i18n` VALUES("126","fr_FR","Page dossier - en bas","",""); -INSERT INTO `hook_i18n` VALUES("127","de_DE","Ordnerseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("127","en_US","Folder page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("127","es_ES","Página de la carpeta - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("127","fr_FR","Page dossier - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("128","de_DE","Ordnerseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("128","en_US","Folder page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("128","es_ES","Carpeta de página - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("128","fr_FR","Page dossier - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("129","de_DE","Ordnerseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("129","en_US","Folder page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("129","es_ES","Carpeta de página - después de inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("129","fr_FR","Page dossier - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("130","de_DE","Fehlschlag der Bestellung - oben","",""); -INSERT INTO `hook_i18n` VALUES("130","en_US","Order failed - at the top","",""); -INSERT INTO `hook_i18n` VALUES("130","es_ES","Pedido erróneo - al tope","",""); -INSERT INTO `hook_i18n` VALUES("130","fr_FR","Échec de la commande - en haut","",""); -INSERT INTO `hook_i18n` VALUES("131","de_DE","Fehlschlag der Bestellung - unten","",""); -INSERT INTO `hook_i18n` VALUES("131","en_US","Order failed - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("131","es_ES","Pedido erróneo - al pie","",""); -INSERT INTO `hook_i18n` VALUES("131","fr_FR","Échec de la commande - en bas","",""); -INSERT INTO `hook_i18n` VALUES("132","de_DE","Fehlschlag der Bestellung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("132","en_US","Order failed - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("132","es_ES","Pedido erróneo - Hoja de Estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("132","fr_FR","Échec de la commande - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("133","de_DE","Fehlschlag der Bestellung - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("133","en_US","Order failed - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("133","es_ES","Pedido erróneo - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("133","fr_FR","Echec de la commande - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("134","de_DE","Fehlschlag der Bestellung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("134","en_US","Order failed - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("134","es_ES","Pedido erróneo - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("134","fr_FR","Echec de la commande - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("135","de_DE","Kategorieseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("135","en_US","Category page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("135","es_ES","Página de la categoría - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("135","fr_FR","Page catégorie - en haut","",""); -INSERT INTO `hook_i18n` VALUES("136","de_DE","Kategorieseite - oben an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("136","en_US","Category page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("136","es_ES","Página de categoría - en la parte superior de la zona principal","",""); -INSERT INTO `hook_i18n` VALUES("136","fr_FR","Page catégorie - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("137","de_DE","Kategorieseite - unten an dem Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("137","en_US","Category page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("137","es_ES","Página de la categoría - en la parte inferior de la zona principal","",""); -INSERT INTO `hook_i18n` VALUES("137","fr_FR","Page catégorie - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("138","de_DE","Kategorieseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("138","en_US","Category page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("138","es_ES","Página de la categoría - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("138","fr_FR","Page catégorie - en bas","",""); -INSERT INTO `hook_i18n` VALUES("139","de_DE","Kategorieseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("139","en_US","Category page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("139","es_ES","Página de la categoría - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("139","fr_FR","Page catégorie - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("140","de_DE","Kategorieseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("140","en_US","Category page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("140","es_ES","Página de la categoría - después de inclusión javascript","",""); -INSERT INTO `hook_i18n` VALUES("140","fr_FR","Page catégorie - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("141","de_DE","Kategorieseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("141","en_US","Category page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("141","es_ES","Página de la categoría - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("141","fr_FR","Page catégorie - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("142","de_DE","Adresseänderung - oben","",""); -INSERT INTO `hook_i18n` VALUES("142","en_US","Address update - at the top","",""); -INSERT INTO `hook_i18n` VALUES("142","es_ES","Actualizar dirección - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("142","fr_FR","Modification d\'adresse - en haut","",""); -INSERT INTO `hook_i18n` VALUES("143","de_DE","Adressänderung - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("143","en_US","Address update - at the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("143","es_ES","Actualizar dirección - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("143","fr_FR","Modification d\'adresse - en haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("144","de_DE","Adresseänderung - unten im Formular","",""); -INSERT INTO `hook_i18n` VALUES("144","en_US","Address update - at the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("144","es_ES","Actualización de dirección - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("144","fr_FR","Modification d\'adresse - en bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("145","de_DE","Adresseänderung - unten","",""); -INSERT INTO `hook_i18n` VALUES("145","en_US","Address update - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("145","es_ES","Actualización de dirección - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("145","fr_FR","Modification d\'adresse - en bas","",""); -INSERT INTO `hook_i18n` VALUES("146","de_DE","Adresseänderung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("146","en_US","Address update - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("146","es_ES","Actualización de dirección - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("146","fr_FR","Modification d\'adresse - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("147","de_DE","Adresseänderung - nach der Integration von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("147","en_US","Address update - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("147","es_ES","Actualización de dirección - tras el include javascript","",""); -INSERT INTO `hook_i18n` VALUES("147","fr_FR","Modification d\'adresse - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("148","de_DE","Adresseänderung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("148","en_US","Address update - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("148","es_ES","Actualización de dirección - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("148","fr_FR","Modification d\'adresse - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("149","de_DE","Startseite - Hauptbereich","",""); -INSERT INTO `hook_i18n` VALUES("149","en_US","Home page - main area","",""); -INSERT INTO `hook_i18n` VALUES("149","es_ES","Página de inicio - Área Principal","",""); -INSERT INTO `hook_i18n` VALUES("149","fr_FR","Page d\'accueil - zone principale","",""); -INSERT INTO `hook_i18n` VALUES("150","de_DE","Startseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("150","en_US","Home page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("150","es_ES","Página de inicio - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("150","fr_FR","Page d\'accueil - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("151","de_DE","Startseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("151","en_US","Home page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("151","es_ES","Página de inicio - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("151","fr_FR","Page d\'accueil - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("152","de_DE","Startseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("152","en_US","Home page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("152","es_ES","Página de inicio - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("152","fr_FR","Page d\'accueil - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("153","de_DE","Passwort Änderung - oben","",""); -INSERT INTO `hook_i18n` VALUES("153","en_US","Change password - at the top","",""); -INSERT INTO `hook_i18n` VALUES("153","es_ES","Cambiar contraseña - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("153","fr_FR","Changement de mot de passe - en haut","",""); -INSERT INTO `hook_i18n` VALUES("154","de_DE","Passwort Änderung - unten","",""); -INSERT INTO `hook_i18n` VALUES("154","en_US","Change password - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("154","es_ES","Cambiar contraseña - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("154","fr_FR","Changement de mot de passe - en bas","",""); -INSERT INTO `hook_i18n` VALUES("155","de_DE","Passwort Änderung - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("155","en_US","Change password - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("155","es_ES","Cambiar contraseña - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("155","fr_FR","Changement de mot de passe - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("156","de_DE","Passwort Änderung - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("156","en_US","Change password - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("156","es_ES","Cambiar contraseña - después de inclusión javascript","",""); -INSERT INTO `hook_i18n` VALUES("156","fr_FR","Changement de mot de passe - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("157","de_DE","Passwort Änderung - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("157","en_US","Change password - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("157","es_ES","Cambiar contraseña - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("157","fr_FR","Changement de mot de passe - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("158","de_DE","Produktseite - oben","",""); -INSERT INTO `hook_i18n` VALUES("158","en_US","Product page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("158","es_ES","Página de producto - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("158","fr_FR","Page produit - en haut","",""); -INSERT INTO `hook_i18n` VALUES("159","de_DE","Produktseite - Bilder-Gallerie","",""); -INSERT INTO `hook_i18n` VALUES("159","en_US","Product page - photo gallery","",""); -INSERT INTO `hook_i18n` VALUES("159","es_ES","Página de producto - Galería de fotos","",""); -INSERT INTO `hook_i18n` VALUES("159","fr_FR","Page produit - galerie photos","",""); -INSERT INTO `hook_i18n` VALUES("160","de_DE","Produktseite - oben dem Details-Bereich","",""); -INSERT INTO `hook_i18n` VALUES("160","en_US","Product page - at the top of the detail","",""); -INSERT INTO `hook_i18n` VALUES("160","es_ES","Página de producto - en la parte superior del detalle","",""); -INSERT INTO `hook_i18n` VALUES("160","fr_FR","Page produit - en haut de la zone détail","",""); -INSERT INTO `hook_i18n` VALUES("161","de_DE","Produktseite - unten dem Details-Bereich","",""); -INSERT INTO `hook_i18n` VALUES("161","en_US","Product page - at the bottom of the detail area","",""); -INSERT INTO `hook_i18n` VALUES("161","es_ES","Página de producto - en la parte inferior del área de detalle","",""); -INSERT INTO `hook_i18n` VALUES("161","fr_FR","Page produit - en dessous de la zone de détail","",""); -INSERT INTO `hook_i18n` VALUES("162","de_DE","Produktseite - erweitere Informationen","",""); -INSERT INTO `hook_i18n` VALUES("162","en_US","Product page - additional information","",""); -INSERT INTO `hook_i18n` VALUES("162","es_ES","Página de producto - información adicional","",""); -INSERT INTO `hook_i18n` VALUES("162","fr_FR","Page produit - informations additionnelles","",""); -INSERT INTO `hook_i18n` VALUES("163","de_DE","Produktseite - unten","",""); -INSERT INTO `hook_i18n` VALUES("163","en_US","Product page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("163","es_ES","Página de producto - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("163","fr_FR","Page produit - en bas","",""); -INSERT INTO `hook_i18n` VALUES("164","de_DE","Produktseite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("164","en_US","Product page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("164","es_ES","Página de producto - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("164","fr_FR","Page produit - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("165","de_DE","Produktseite - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("165","en_US","Product page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("165","es_ES","Página de producto - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("165","fr_FR","Page produit - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("166","de_DE","Produktseite - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("166","en_US","Product page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("166","es_ES","Página de producto - después de la inicialización de Javascript","",""); -INSERT INTO `hook_i18n` VALUES("166","fr_FR","Page produit - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("167","de_DE","Kundenkonto - oben","",""); -INSERT INTO `hook_i18n` VALUES("167","en_US","customer account - at the top","",""); -INSERT INTO `hook_i18n` VALUES("167","es_ES","cuenta de cliente - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("167","fr_FR","Compte client - en haut","",""); -INSERT INTO `hook_i18n` VALUES("168","de_DE","Kundenkonto - unten","",""); -INSERT INTO `hook_i18n` VALUES("168","en_US","customer account - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("168","es_ES","cuenta de cliente - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("168","fr_FR","Compte client - en bas","",""); -INSERT INTO `hook_i18n` VALUES("169","de_DE","Kundenkonto - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("169","en_US","customer account - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("169","es_ES","cuenta de cliente - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("169","fr_FR","Compte client - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("170","de_DE","Kundenkonto - Nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("170","en_US","customer account - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("170","es_ES","cuenta de cliente - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("170","fr_FR","Compte client - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("171","de_DE","Kundenkonto - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("171","en_US","customer account - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("171","es_ES","cuenta de cliente - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("171","fr_FR","Compte client - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("172","de_DE","Alle Produkte - oben","",""); -INSERT INTO `hook_i18n` VALUES("172","en_US","All Products - at the top","",""); -INSERT INTO `hook_i18n` VALUES("172","es_ES","Todos los productos - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("172","fr_FR","Tous les produits - en haut","",""); -INSERT INTO `hook_i18n` VALUES("173","de_DE","Alle Produkte - unten","",""); -INSERT INTO `hook_i18n` VALUES("173","en_US","All Products - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("173","es_ES","Todos los productos - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("173","fr_FR","Tous les produits - en bas","",""); -INSERT INTO `hook_i18n` VALUES("174","de_DE","Alle Produkte - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("174","en_US","All Products - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("174","es_ES","Todos los productos - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("174","fr_FR","Tous les produits - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("175","de_DE","Alle Produkte - nach der Integration von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("175","en_US","All Products - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("175","es_ES","Todos los productos - después de include javascript","",""); -INSERT INTO `hook_i18n` VALUES("175","fr_FR","Tous les produits - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("176","de_DE","Alle Produkte - nach der Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("176","en_US","All Products - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("176","es_ES","Todos los productos - después de la inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("176","fr_FR","Tous les produits - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("177","de_DE","Produkt-Loop - oben","",""); -INSERT INTO `hook_i18n` VALUES("177","en_US","Product loop - at the top","",""); -INSERT INTO `hook_i18n` VALUES("177","es_ES","Ciclo del producto - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("177","fr_FR","Boucle produit - en haut","",""); -INSERT INTO `hook_i18n` VALUES("178","de_DE","Produkt-Loop - unten","",""); -INSERT INTO `hook_i18n` VALUES("178","en_US","Product loop - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("178","es_ES","Ciclo del producto - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("178","fr_FR","Boucle produit - en bas","",""); -INSERT INTO `hook_i18n` VALUES("179","de_DE","Kategorieseite - oben an der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("179","en_US","Category page - at the top of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("179","es_ES","Página de categoría - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("179","fr_FR","Page catégorie - en haut de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("180","de_DE","Kategorieseite - Sidebars Body","",""); -INSERT INTO `hook_i18n` VALUES("180","en_US","Category page - the body of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("180","es_ES","Página de categoría - el cuerpo de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("180","fr_FR","Page catégorie - le corps de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("181","de_DE","Kategorieseite - unten an der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("181","en_US","Category page - at the bottom of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("181","es_ES","Página de la categoría - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("181","fr_FR","Page catégorie - en bas de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("182","de_DE","Inhaltseite - oben an der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("182","en_US","Content page - at the top of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("182","es_ES","Página de contenido - en la parte superior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("182","fr_FR","Page de contenu - en haut de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("183","de_DE","Inhaltseite - Sidebars Body","",""); -INSERT INTO `hook_i18n` VALUES("183","en_US","Content page - the body of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("183","es_ES","Página de contenido - cuerpo de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("183","fr_FR","Page de contenu - le corps de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("184","de_DE","Inhaltseite - unten an der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("184","en_US","Content page - at the bottom of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("184","es_ES","Página de contenido - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("184","fr_FR","Page de contenu - en bas de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("185","de_DE","Lieferwahl - Erweiteren Bereich","",""); -INSERT INTO `hook_i18n` VALUES("185","en_US","Delivery choice - extra area","",""); -INSERT INTO `hook_i18n` VALUES("185","es_ES","Opción de entrega - área extra","",""); -INSERT INTO `hook_i18n` VALUES("185","fr_FR","Choix du transporteur - zone supplémentaire","",""); -INSERT INTO `hook_i18n` VALUES("186","de_DE","Lieferwahl - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("186","en_US","Delivery choice - javascript","",""); -INSERT INTO `hook_i18n` VALUES("186","es_ES","Opción de entrega - javascript","",""); -INSERT INTO `hook_i18n` VALUES("186","fr_FR","Choix du transporteur - javascript","",""); -INSERT INTO `hook_i18n` VALUES("187","de_DE","Kategorieseite - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("187","en_US","Category page - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("187","es_ES","Página de categoría - antes el área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("187","fr_FR","Page catégorie - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("188","de_DE","Kategorieseite - nach dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("188","en_US","Category page - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("188","es_ES","Página de la categoría - después el área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("188","fr_FR","Page catégorie - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("189","de_DE","Inhaltseite- vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("189","en_US","Content page - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("189","es_ES","Página de contenido - antes del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("189","fr_FR","Page de contenu - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("190","de_DE","Inhaltseite - nach dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("190","en_US","Content page - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("190","es_ES","Página de contenido - después del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("190","fr_FR","Page de contenu - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("191","de_DE","Ordnerseite - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("191","en_US","Folder page - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("191","es_ES","Carpeta de página - antes del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("191","fr_FR","Page dossier - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("192","de_DE","Ordnerseite - nach dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("192","en_US","Folder page - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("192","es_ES","Carpeta de página - después del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("192","fr_FR","Page dossier - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("193","de_DE","Marken Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("193","en_US","Brands page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("193","es_ES","Página de las marcas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("193","fr_FR","Page des marques - en haut","",""); -INSERT INTO `hook_i18n` VALUES("194","de_DE","Marken Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("194","en_US","Brands page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("194","es_ES","Página de las marcas - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("194","fr_FR","Page des marques - en bas","",""); -INSERT INTO `hook_i18n` VALUES("195","de_DE","Marken Seite - oben des Hauptbereichs","",""); -INSERT INTO `hook_i18n` VALUES("195","en_US","Brands page - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("195","es_ES","Página de las marcas - en la parte inferior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("195","fr_FR","Page des marques - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("196","de_DE","Marken Seite - unten des Hauptbereichs","",""); -INSERT INTO `hook_i18n` VALUES("196","en_US","Brands page - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("196","es_ES","Página de las marcas - en la parte inferior del área principal","",""); -INSERT INTO `hook_i18n` VALUES("196","fr_FR","Page des marques - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("197","de_DE","Marken Seite - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("197","en_US","Brands page - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("197","es_ES","Página de marcas - antes del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("197","fr_FR","Page des marques - au dessus de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("198","de_DE","Marken Seite - Nach dem Hauptinhalt Bereich","",""); -INSERT INTO `hook_i18n` VALUES("198","en_US","Brands page - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("198","es_ES","Página de marcas - después el área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("198","fr_FR","Page des marques - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("199","de_DE","Marken Seite - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("199","en_US","Brands page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("199","es_ES","Página de marcas - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("199","fr_FR","Page des marques - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("200","de_DE","Marken Seite - Nach der Integration von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("200","en_US","Brands page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("200","es_ES","Página de marcas - después de inclusión de javascript","",""); -INSERT INTO `hook_i18n` VALUES("200","fr_FR","Page des marques - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("201","de_DE","Marken Seite - Javascript Initialisation","",""); -INSERT INTO `hook_i18n` VALUES("201","en_US","Brands page - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("201","es_ES","Página de marcas - inicialización de javascript","",""); -INSERT INTO `hook_i18n` VALUES("201","fr_FR","Page des marques - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("202","de_DE","Marken Seite - oben der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("202","en_US","Brands page - at the top of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("202","es_ES","Página de las marcas - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("202","fr_FR","Page des marques - en haut de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("203","de_DE","Marken Seite - Sidebars Body","",""); -INSERT INTO `hook_i18n` VALUES("203","en_US","Brands page - the body of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("203","es_ES","Página de marcas - el cuerpo de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("203","fr_FR","Page des marques - le corps de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("204","de_DE","Marken Seite - unten der Sidebar","",""); -INSERT INTO `hook_i18n` VALUES("204","en_US","Brands page - at the bottom of the sidebar","",""); -INSERT INTO `hook_i18n` VALUES("204","es_ES","Página de las marcas - en la parte inferior de la barra lateral","",""); -INSERT INTO `hook_i18n` VALUES("204","fr_FR","Page des marques - en bas de la sidebar","",""); -INSERT INTO `hook_i18n` VALUES("205","de_DE","Bestellungsdetails - oben","",""); -INSERT INTO `hook_i18n` VALUES("205","en_US","Order details - at the top","",""); -INSERT INTO `hook_i18n` VALUES("205","es_ES","Detalles de la orden - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("205","fr_FR","Détail d\'une commande - en haut","",""); -INSERT INTO `hook_i18n` VALUES("206","de_DE","Bestellungsdetails - weitere Informationen","",""); -INSERT INTO `hook_i18n` VALUES("206","en_US","Order details - additional information","",""); -INSERT INTO `hook_i18n` VALUES("206","es_ES","Detalles de la Orden - información adicional","",""); -INSERT INTO `hook_i18n` VALUES("206","fr_FR","Détail d\'une commande - informations additionnelles","",""); -INSERT INTO `hook_i18n` VALUES("207","de_DE","Bestellungsdetails - nach den allgemeinen Informationen","",""); -INSERT INTO `hook_i18n` VALUES("207","en_US","Order details - after global information","",""); -INSERT INTO `hook_i18n` VALUES("207","es_ES","Detalles de la orden - después de la información global","",""); -INSERT INTO `hook_i18n` VALUES("207","fr_FR","Détail d\'une commande - après les informations générales","",""); -INSERT INTO `hook_i18n` VALUES("208","de_DE","Bestellungsdetails - weitere Informationen für den Versand","",""); -INSERT INTO `hook_i18n` VALUES("208","en_US","Order details - additional delivery information","",""); -INSERT INTO `hook_i18n` VALUES("208","es_ES","Detalles de la Orden - información adicional del envío","",""); -INSERT INTO `hook_i18n` VALUES("208","fr_FR","Détail d\'une commande - informations additionnelles pour l\'expédition","",""); -INSERT INTO `hook_i18n` VALUES("209","de_DE","Bestellungsdetails - Lieferadresse","",""); -INSERT INTO `hook_i18n` VALUES("209","en_US","Order details - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("209","es_ES","Pedir detalles - dirección de envío","",""); -INSERT INTO `hook_i18n` VALUES("209","fr_FR","Détail d\'une commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("210","de_DE","Bestellungsdetails - weitere Informationen für die Rechnung","",""); -INSERT INTO `hook_i18n` VALUES("210","en_US","Order details - additional invoice information","",""); -INSERT INTO `hook_i18n` VALUES("210","es_ES","Detalles de la Orden - información adicional de la factura","",""); -INSERT INTO `hook_i18n` VALUES("210","fr_FR","Détail d\'une commande - informations additionnelles pour la facturation","",""); -INSERT INTO `hook_i18n` VALUES("211","de_DE","Bestellungsdetails - Rechnungsadresse","",""); -INSERT INTO `hook_i18n` VALUES("211","en_US","Order details - invoice address","",""); -INSERT INTO `hook_i18n` VALUES("211","es_ES","Detalles de la orden - dirección de factura","",""); -INSERT INTO `hook_i18n` VALUES("211","fr_FR","Détail d\'une commande - adresse de facturation","",""); -INSERT INTO `hook_i18n` VALUES("212","de_DE","Bestellungsdetails - Nach den Adressen","",""); -INSERT INTO `hook_i18n` VALUES("212","en_US","Order details - after addresses","",""); -INSERT INTO `hook_i18n` VALUES("212","es_ES","Detalles de la Orden - después de direcciones","",""); -INSERT INTO `hook_i18n` VALUES("212","fr_FR","Détail d\'une commande - Après les adresses","",""); -INSERT INTO `hook_i18n` VALUES("213","de_DE","Bestellungsdetails - vor der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("213","en_US","Order details - before products list","",""); -INSERT INTO `hook_i18n` VALUES("213","es_ES","Detalles de la orden - antes de lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("213","fr_FR","Détail d\'une commande - avant la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("214","de_DE","Bestellungsdetails - weitere Informationen für ein Produkt","",""); -INSERT INTO `hook_i18n` VALUES("214","en_US","Order details - additional product information","",""); -INSERT INTO `hook_i18n` VALUES("214","es_ES","Detalles de la Orden - información adicional del producto","",""); -INSERT INTO `hook_i18n` VALUES("214","fr_FR","Détail d\'une commande - informations additionnelles pour un produit","",""); -INSERT INTO `hook_i18n` VALUES("215","de_DE","Bestellungsdetails - nach der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("215","en_US","Order details - after products list","",""); -INSERT INTO `hook_i18n` VALUES("215","es_ES","Detalles de la orden - después de la lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("215","fr_FR","Détail d\'une commande - après la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("216","de_DE","Bestellungsdetails - nach den Produkten","",""); -INSERT INTO `hook_i18n` VALUES("216","en_US","Order details - after products","",""); -INSERT INTO `hook_i18n` VALUES("216","es_ES","Detalles de la orden - después de los productos","",""); -INSERT INTO `hook_i18n` VALUES("216","fr_FR","Détail d\'une commande - Après les produits","",""); -INSERT INTO `hook_i18n` VALUES("217","de_DE","Bestellungsdetails - unten","",""); -INSERT INTO `hook_i18n` VALUES("217","en_US","Order details - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("217","es_ES","Detalles de la orden - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("217","fr_FR","Détail d\'une commande - en bas","",""); -INSERT INTO `hook_i18n` VALUES("218","de_DE","Bestellungsdetails - CSS-Stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("218","en_US","Order details - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("218","es_ES","Detalles de la Orden - hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("218","fr_FR","Détail d\'une commande - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("219","de_DE","Bestellungsdetails - nach Integration von JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("219","en_US","Order details - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("219","es_ES","Detalles de la orden - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("219","fr_FR","Détail d\'une commande - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("220","de_DE","Bestellungsdetails - Initialisierung von Javascript","",""); -INSERT INTO `hook_i18n` VALUES("220","en_US","Order details - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("220","es_ES","Detalles de la Orden - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("220","fr_FR","Détail d\'une commande - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("221","de_DE","Kundenkonto - Erweitere Informationen","",""); -INSERT INTO `hook_i18n` VALUES("221","en_US","Customer account - additional information","",""); -INSERT INTO `hook_i18n` VALUES("221","es_ES","Cuenta de cliente - información adicional","",""); -INSERT INTO `hook_i18n` VALUES("221","fr_FR","Compte client - informations additionnelles","",""); -INSERT INTO `hook_i18n` VALUES("222","de_DE","Bestelldaten - nach einem Produkt","",""); -INSERT INTO `hook_i18n` VALUES("222","en_US","Order details - after product","",""); -INSERT INTO `hook_i18n` VALUES("222","es_ES","Detalles de la orden - después del producto","",""); -INSERT INTO `hook_i18n` VALUES("222","fr_FR","Détail d\'une commande - Après un produit","",""); -INSERT INTO `hook_i18n` VALUES("223","de_DE","Mini-Warenkorb","",""); -INSERT INTO `hook_i18n` VALUES("223","en_US","Mini cart","",""); -INSERT INTO `hook_i18n` VALUES("223","es_ES","Mini tarjeta","",""); -INSERT INTO `hook_i18n` VALUES("223","fr_FR","Mini panier","",""); -INSERT INTO `hook_i18n` VALUES("224","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("224","en_US","Sale - at the top","",""); -INSERT INTO `hook_i18n` VALUES("224","es_ES","Venta - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("224","fr_FR","Promotion - en haut","",""); -INSERT INTO `hook_i18n` VALUES("225","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("225","en_US","Sale - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("225","es_ES","Venta - al pie","",""); -INSERT INTO `hook_i18n` VALUES("225","fr_FR","Promotion - en bas","",""); -INSERT INTO `hook_i18n` VALUES("226","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("226","en_US","Sale - at the top of the main area","",""); -INSERT INTO `hook_i18n` VALUES("226","es_ES","Venta - encabezado del área principal","",""); -INSERT INTO `hook_i18n` VALUES("226","fr_FR","Promotion - en haut de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("227","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("227","en_US","Sale - at the bottom of the main area","",""); -INSERT INTO `hook_i18n` VALUES("227","es_ES","Venta - al pie del área principal","",""); -INSERT INTO `hook_i18n` VALUES("227","fr_FR","Promotion - en bas de la zone principal","",""); -INSERT INTO `hook_i18n` VALUES("228","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("228","en_US","Sale - before the main content area","",""); -INSERT INTO `hook_i18n` VALUES("228","es_ES","Venta - antes del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("228","fr_FR","Promotion - au dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("229","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("229","en_US","Sale - after the main content area","",""); -INSERT INTO `hook_i18n` VALUES("229","es_ES","Venta - después del área de contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("229","fr_FR","Promotion - en dessous de la zone de contenu principale","",""); -INSERT INTO `hook_i18n` VALUES("230","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("230","en_US","Sale - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("230","es_ES","Venta - Hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("230","fr_FR","Promotion - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("231","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("231","en_US","Sale - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("231","es_ES","Venta - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("231","fr_FR","Promotion - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("232","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("232","en_US","Sale - javascript initialization","",""); -INSERT INTO `hook_i18n` VALUES("232","es_ES","Venta - inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("232","fr_FR","Promotion - initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("233","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("233","en_US","Order details - after invoice address","",""); -INSERT INTO `hook_i18n` VALUES("233","es_ES","Detalles de pedido - después de la dirección de facturación","",""); -INSERT INTO `hook_i18n` VALUES("233","fr_FR","Détail d\'une commande - après l\'adresse de facturation","",""); -INSERT INTO `hook_i18n` VALUES("234","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("234","en_US","Order details - after delivery address","",""); -INSERT INTO `hook_i18n` VALUES("234","es_ES","Detalles de pedido - después de la dirección de entrega","",""); -INSERT INTO `hook_i18n` VALUES("234","fr_FR","Détails d\'une commande - après l\'adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("235","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("235","en_US","Newsletter unsubscribe page - at the top","",""); -INSERT INTO `hook_i18n` VALUES("235","es_ES","Página de baja del boletín - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("235","fr_FR","Désabonnement newsletter - en haut","",""); -INSERT INTO `hook_i18n` VALUES("236","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("236","en_US","Newsletter unsubscribe page - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("236","es_ES","Página de baja del boletín - al pie","",""); -INSERT INTO `hook_i18n` VALUES("236","fr_FR","Désabonnement newsletter - en bas","",""); -INSERT INTO `hook_i18n` VALUES("237","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("237","en_US","Newsletter unsubscribe page - CSS stylesheet","",""); -INSERT INTO `hook_i18n` VALUES("237","es_ES","Página de baja del boletín - Hoja de estilos CSS","",""); -INSERT INTO `hook_i18n` VALUES("237","fr_FR","Désabonnement newsletter - feuille de style CSS","",""); -INSERT INTO `hook_i18n` VALUES("238","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("238","en_US","Newsletter unsubscribe page - after javascript include","",""); -INSERT INTO `hook_i18n` VALUES("238","es_ES","Página de baja del boletín - después de incluir JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("238","fr_FR","Désabonnement newsletter - après l\'inclusion du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("239","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("239","en_US","Newsletter unsubscribe page - after javascript initialisation","",""); -INSERT INTO `hook_i18n` VALUES("239","es_ES","Página de baja del boletín - después de la inicialización de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("239","fr_FR","Désabonnement newsletter - après l\'initialisation du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1000","de_DE","Kategorie - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1000","en_US","Category - content","",""); -INSERT INTO `hook_i18n` VALUES("1000","es_ES","Categoría - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1000","fr_FR","Catégorie - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1001","de_DE","Inhalt - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1001","en_US","Content - content","",""); -INSERT INTO `hook_i18n` VALUES("1001","es_ES","Contenido - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1001","fr_FR","Contenu - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1002","de_DE","Ordner - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1002","en_US","Folder - content","",""); -INSERT INTO `hook_i18n` VALUES("1002","es_ES","Carpeta - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1002","fr_FR","Dossier - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1003","de_DE","Bestellung - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1003","en_US","Order - content","",""); -INSERT INTO `hook_i18n` VALUES("1003","es_ES","Orden - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1003","fr_FR","Commande - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1004","de_DE","Produkt - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1004","en_US","Product - content","",""); -INSERT INTO `hook_i18n` VALUES("1004","es_ES","Producto - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1004","fr_FR","Produit - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1005","de_DE","Karakteristiken-Angaben - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1005","en_US","Features value - table header","",""); -INSERT INTO `hook_i18n` VALUES("1005","es_ES","Valor Característica - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1005","fr_FR","Valeur de caractéristiques - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1006","de_DE","Karakteristiken-Angaben - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1006","en_US","Features value - table row","",""); -INSERT INTO `hook_i18n` VALUES("1006","es_ES","Valor Característica - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1006","fr_FR","Valeur de caractéristiques - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1007","de_DE","Karakteristik - Angabe-Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1007","en_US","Feature - Value create form","",""); -INSERT INTO `hook_i18n` VALUES("1007","es_ES","Característica - Formulario para crear valor","",""); -INSERT INTO `hook_i18n` VALUES("1007","fr_FR","Caractéristique - Formulaire de création de valeur","",""); -INSERT INTO `hook_i18n` VALUES("1008","de_DE","Karakteristik - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1008","en_US","Feature - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1008","es_ES","Característica - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1008","fr_FR","Caractéristique - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1009","de_DE","Produkt - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1009","en_US","Product - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1009","es_ES","Producto - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1009","fr_FR","Produit - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1010","de_DE","Gutschein - JavaScript erstellen","",""); -INSERT INTO `hook_i18n` VALUES("1010","en_US","Coupon - create JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1010","es_ES","Cupón - crear JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1010","fr_FR","Code promo - JavaScript création","",""); -INSERT INTO `hook_i18n` VALUES("1011","de_DE","Taxes - Änderungs-Formular","",""); -INSERT INTO `hook_i18n` VALUES("1011","en_US","Taxes - update form","",""); -INSERT INTO `hook_i18n` VALUES("1011","es_ES","Impuestos - formulario de actualización","",""); -INSERT INTO `hook_i18n` VALUES("1011","fr_FR","Taxes - formulaire de modification","",""); -INSERT INTO `hook_i18n` VALUES("1012","de_DE","Taxregel - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1012","en_US","tax rule - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1012","es_ES","regla de impuesto - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1012","fr_FR","Règle de taxe - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1013","de_DE","Tools - oben","",""); -INSERT INTO `hook_i18n` VALUES("1013","en_US","Tools - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1013","es_ES","Herramientas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1013","fr_FR","Outils - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1014","de_DE","Tools - oben der Spalte","",""); -INSERT INTO `hook_i18n` VALUES("1014","en_US","Tools - at the top of the column","",""); -INSERT INTO `hook_i18n` VALUES("1014","es_ES","Herramientas - en la parte superior de la columna","",""); -INSERT INTO `hook_i18n` VALUES("1014","fr_FR","Outils - en haut de la colonne","",""); -INSERT INTO `hook_i18n` VALUES("1015","de_DE","Tools - unten der Spalte 1","",""); -INSERT INTO `hook_i18n` VALUES("1015","en_US","Tools - at the bottom of column 1","",""); -INSERT INTO `hook_i18n` VALUES("1015","es_ES","Herramientas - en la parte inferior de la columna 1","",""); -INSERT INTO `hook_i18n` VALUES("1015","fr_FR","Outils - en bas de la colonne 1","",""); -INSERT INTO `hook_i18n` VALUES("1016","de_DE","Tools - unten","",""); -INSERT INTO `hook_i18n` VALUES("1016","en_US","Tools - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1016","es_ES","Herramientas - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1016","fr_FR","Outils - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1017","de_DE","Tools - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1017","en_US","Tools - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1017","es_ES","Herramientas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1017","fr_FR","Outils - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1018","de_DE","Nachrichten - oben","",""); -INSERT INTO `hook_i18n` VALUES("1018","en_US","Messages - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1018","es_ES","Mensajes - al tope","",""); -INSERT INTO `hook_i18n` VALUES("1018","fr_FR","Messages - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1019","de_DE","Nachrichten - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1019","en_US","Messages - table header","",""); -INSERT INTO `hook_i18n` VALUES("1019","es_ES","Mensajes - encabezado de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1019","fr_FR","Messages - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1020","de_DE","Nachrichten - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1020","en_US","Messages - table row","",""); -INSERT INTO `hook_i18n` VALUES("1020","es_ES","Mensajes - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1020","fr_FR","Messages - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1021","de_DE","Nachrichten - unten","",""); -INSERT INTO `hook_i18n` VALUES("1021","en_US","Messages - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1021","es_ES","Mensajes - base","",""); -INSERT INTO `hook_i18n` VALUES("1021","fr_FR","Messages - bas","",""); -INSERT INTO `hook_i18n` VALUES("1022","de_DE","Nachricht - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1022","en_US","Message - create form","",""); -INSERT INTO `hook_i18n` VALUES("1022","es_ES","Mensaje - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1022","fr_FR","Message - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1023","de_DE","Nachricht - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1023","en_US","Message - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1023","es_ES","Mensaje - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1023","fr_FR","Message - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1024","de_DE","Nachrichten - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1024","en_US","Messages - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1024","es_ES","Mensajes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1024","fr_FR","Messages - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1025","de_DE","Taxeregeln - oben","",""); -INSERT INTO `hook_i18n` VALUES("1025","en_US","Taxes rules - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1025","es_ES","Reglas de impuestos - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1025","fr_FR","Règles de taxes - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1026","de_DE","Taxeregeln - unten","",""); -INSERT INTO `hook_i18n` VALUES("1026","en_US","Taxes rules - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1026","es_ES","Reglas de impuestos - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1026","fr_FR","Règles de taxes - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1027","de_DE","Taxe - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1027","en_US","Tax - create form","",""); -INSERT INTO `hook_i18n` VALUES("1027","es_ES","Impuesto - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1027","fr_FR","Taxe - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1028","de_DE","Taxe - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1028","en_US","Tax - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1028","es_ES","Impuesto - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1028","fr_FR","Taxe - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1029","de_DE","Taxregel - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1029","en_US","tax rule - create form","",""); -INSERT INTO `hook_i18n` VALUES("1029","es_ES","regla de impuesto - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1029","fr_FR","Règle de taxe - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1030","de_DE","Taxregel - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1030","en_US","tax rule - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1030","es_ES","regla de impuesto - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1030","fr_FR","Règle de taxe - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1031","de_DE","Taxeregeln - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1031","en_US","Taxes rules - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1031","es_ES","Reglas de impuestos - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1031","fr_FR","Règles de taxes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1032","de_DE","Exporte - oben","",""); -INSERT INTO `hook_i18n` VALUES("1032","en_US","Exports - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1032","es_ES","Exportar - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1032","fr_FR","Exports - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1033","de_DE","Exporte - unten einer Kategorie","",""); -INSERT INTO `hook_i18n` VALUES("1033","en_US","Exports - at the bottom of a category","",""); -INSERT INTO `hook_i18n` VALUES("1033","es_ES","Exportar - en la parte inferior de una categoría","",""); -INSERT INTO `hook_i18n` VALUES("1033","fr_FR","Exports - en bas d\'une catégorie","",""); -INSERT INTO `hook_i18n` VALUES("1034","de_DE","Exporte - unten der Spalte 1","",""); -INSERT INTO `hook_i18n` VALUES("1034","en_US","Exports - at the bottom of column 1","",""); -INSERT INTO `hook_i18n` VALUES("1034","es_ES","Exportar - en la parte inferior de la columna 1","",""); -INSERT INTO `hook_i18n` VALUES("1034","fr_FR","Exports - en bas de la colonne 1","",""); -INSERT INTO `hook_i18n` VALUES("1035","de_DE","Exporte - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1035","en_US","Exports - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1035","es_ES","Exportar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1035","fr_FR","Exports - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1036","de_DE","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1036","en_US","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1036","es_ES","Exportación - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1036","fr_FR","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1037","de_DE","Produkt - Ordner Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1037","en_US","Product - folders table header","",""); -INSERT INTO `hook_i18n` VALUES("1037","es_ES","Producto - encabezado de la tabla de carpetas","",""); -INSERT INTO `hook_i18n` VALUES("1037","fr_FR","Produit - colonne tableau dossiers","",""); -INSERT INTO `hook_i18n` VALUES("1038","de_DE","Produkt - Ordner Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1038","en_US","Product - folders table row","",""); -INSERT INTO `hook_i18n` VALUES("1038","es_ES","Producto - fila de la tabla de carpetas","",""); -INSERT INTO `hook_i18n` VALUES("1038","fr_FR","Produit - ligne tableau dossiers","",""); -INSERT INTO `hook_i18n` VALUES("1039","de_DE","Produkt - Preisedetails Formular","",""); -INSERT INTO `hook_i18n` VALUES("1039","en_US","Product - details pricing form","",""); -INSERT INTO `hook_i18n` VALUES("1039","es_ES","Producto - formato de detalles del precio","",""); -INSERT INTO `hook_i18n` VALUES("1039","fr_FR","Produit - Formulaire détail des prix","",""); -INSERT INTO `hook_i18n` VALUES("1040","de_DE","Produkt - Bestandänderung Formular","",""); -INSERT INTO `hook_i18n` VALUES("1040","en_US","Product - stock edit form","",""); -INSERT INTO `hook_i18n` VALUES("1040","es_ES","Producto - Editar formulario de stock","",""); -INSERT INTO `hook_i18n` VALUES("1040","fr_FR","Produit - formulaire de modification du stock","",""); -INSERT INTO `hook_i18n` VALUES("1041","de_DE","Produkt - Sonderangebotdetails Formular","",""); -INSERT INTO `hook_i18n` VALUES("1041","en_US","Product - details promotion form","",""); -INSERT INTO `hook_i18n` VALUES("1041","es_ES","Producto - formulario de detalles de la promoción","",""); -INSERT INTO `hook_i18n` VALUES("1041","fr_FR","Produit - Formulaire détail des promotions","",""); -INSERT INTO `hook_i18n` VALUES("1042","de_DE","Produkt - vor den Kombinationen","",""); -INSERT INTO `hook_i18n` VALUES("1042","en_US","Product - before combinations","",""); -INSERT INTO `hook_i18n` VALUES("1042","es_ES","Producto - después de las combinaciones","",""); -INSERT INTO `hook_i18n` VALUES("1042","fr_FR","Produit - avant les déclinaisons","",""); -INSERT INTO `hook_i18n` VALUES("1043","de_DE","Produkt - Kombinationsliste-Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1043","en_US","Product - combinations list caption","",""); -INSERT INTO `hook_i18n` VALUES("1043","es_ES","Producto - título de la lista de combinaciones","",""); -INSERT INTO `hook_i18n` VALUES("1043","fr_FR","Produit - légende liste des déclinaisons","",""); -INSERT INTO `hook_i18n` VALUES("1044","de_DE","Produkt - nach den Kombinationen","",""); -INSERT INTO `hook_i18n` VALUES("1044","en_US","Product - after combinations","",""); -INSERT INTO `hook_i18n` VALUES("1044","es_ES","Producto - después de las combinaciones","",""); -INSERT INTO `hook_i18n` VALUES("1044","fr_FR","Produit - après les déclinaisons","",""); -INSERT INTO `hook_i18n` VALUES("1045","de_DE","Produkt - Kombinations-Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1045","en_US","Product - combination delete form","",""); -INSERT INTO `hook_i18n` VALUES("1045","es_ES","Producto - Formulario para borrar combinaciones","",""); -INSERT INTO `hook_i18n` VALUES("1045","fr_FR","Produit - formulaire de suppression de combinaison","",""); -INSERT INTO `hook_i18n` VALUES("1046","de_DE","Modulen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1046","en_US","Modules - table header","",""); -INSERT INTO `hook_i18n` VALUES("1046","es_ES","Módulos - encabezado de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1046","fr_FR","Modules - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1047","de_DE","Modulen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1047","en_US","Modules - table row","",""); -INSERT INTO `hook_i18n` VALUES("1047","es_ES","Módulos - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1047","fr_FR","Modules - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1048","de_DE","Währung - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1048","en_US","Currency - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1048","es_ES","Divisas - Editar javaScript","",""); -INSERT INTO `hook_i18n` VALUES("1048","fr_FR","Devise - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1049","de_DE","Kategorie - Inhalts Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1049","en_US","Category - contents table header","",""); -INSERT INTO `hook_i18n` VALUES("1049","es_ES","Categoría - encabezado de tabla de contenido","",""); -INSERT INTO `hook_i18n` VALUES("1049","fr_FR","Catégorie - colonne tableau contenus","",""); -INSERT INTO `hook_i18n` VALUES("1050","de_DE","Kategorie - Inhalts Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1050","en_US","Category - contents table row","",""); -INSERT INTO `hook_i18n` VALUES("1050","es_ES","Categoría - fila de la tabla de contenido","",""); -INSERT INTO `hook_i18n` VALUES("1050","fr_FR","Catégorie - ligne tableau contenus","",""); -INSERT INTO `hook_i18n` VALUES("1051","de_DE","Kategorie - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1051","en_US","Category - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1051","es_ES","Categoría - edición JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1051","fr_FR","Catégorie - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1052","de_DE","Dokument - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1052","en_US","Document - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1052","es_ES","Documento - edición JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1052","fr_FR","Document - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1053","de_DE","Kunde - oben","",""); -INSERT INTO `hook_i18n` VALUES("1053","en_US","Customer - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1053","es_ES","Cliente - en la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1053","fr_FR","Client - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1054","de_DE","Kunden - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1054","en_US","Customers - caption","",""); -INSERT INTO `hook_i18n` VALUES("1054","es_ES","Clientes - texto","",""); -INSERT INTO `hook_i18n` VALUES("1054","fr_FR","Clients - légende","",""); -INSERT INTO `hook_i18n` VALUES("1055","de_DE","Kunden - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1055","en_US","Customers - header","",""); -INSERT INTO `hook_i18n` VALUES("1055","es_ES","Clientes - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1055","fr_FR","Clients - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1056","de_DE","Kunden - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1056","en_US","Customers - row","",""); -INSERT INTO `hook_i18n` VALUES("1056","es_ES","Clientes - fila","",""); -INSERT INTO `hook_i18n` VALUES("1056","fr_FR","Clients - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1057","de_DE","Kunde - unten","",""); -INSERT INTO `hook_i18n` VALUES("1057","en_US","Customer - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1057","es_ES","Cliente - pie","",""); -INSERT INTO `hook_i18n` VALUES("1057","fr_FR","Client - bas","",""); -INSERT INTO `hook_i18n` VALUES("1058","de_DE","Kunde - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1058","en_US","Customer - create form","",""); -INSERT INTO `hook_i18n` VALUES("1058","es_ES","Cliente - formulario creación","",""); -INSERT INTO `hook_i18n` VALUES("1058","fr_FR","Client - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1059","de_DE","Kunde - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1059","en_US","Customer - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1059","es_ES","Cliente - formulario eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1059","fr_FR","Client - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1060","de_DE","Kunden - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1060","en_US","Customers - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1060","es_ES","Clientes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1060","fr_FR","Clients - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1061","de_DE","Produkt - Inhalte Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1061","en_US","Product - contents table header","",""); -INSERT INTO `hook_i18n` VALUES("1061","es_ES","Producto - contenidos del encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1061","fr_FR","Produit - colonne tableau contenus","",""); -INSERT INTO `hook_i18n` VALUES("1062","de_DE","Produkt - Inhalte Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1062","en_US","Product - contents table row","",""); -INSERT INTO `hook_i18n` VALUES("1062","es_ES","Producto - contenidos de la fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1062","fr_FR","Produit - ligne tableau contenus","",""); -INSERT INTO `hook_i18n` VALUES("1063","de_DE","Produkt - Zubehör Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1063","en_US","Product - accessories table header","",""); -INSERT INTO `hook_i18n` VALUES("1063","es_ES","Producto - encabezado de la tabla accesoria","",""); -INSERT INTO `hook_i18n` VALUES("1063","fr_FR","Produit - colonne tableau accessoires","",""); -INSERT INTO `hook_i18n` VALUES("1064","de_DE","Produkt - Zubehör Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1064","en_US","Product - accessories table row","",""); -INSERT INTO `hook_i18n` VALUES("1064","es_ES","Producto - fila de la tabla de accesorios","",""); -INSERT INTO `hook_i18n` VALUES("1064","fr_FR","Produit - ligne tableau accessoires","",""); -INSERT INTO `hook_i18n` VALUES("1065","de_DE","Produkt - Kategorien Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1065","en_US","Product - categories table header","",""); -INSERT INTO `hook_i18n` VALUES("1065","es_ES","Producto - encabezado de la tabla de categorías","",""); -INSERT INTO `hook_i18n` VALUES("1065","fr_FR","Produit - colonne tableau catégories","",""); -INSERT INTO `hook_i18n` VALUES("1066","de_DE","Produkt - Kategorien Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1066","en_US","Product - categories table row","",""); -INSERT INTO `hook_i18n` VALUES("1066","es_ES","Producto - fila de la tabla de categorías","",""); -INSERT INTO `hook_i18n` VALUES("1066","fr_FR","Produit - ligne tableau catégories","",""); -INSERT INTO `hook_i18n` VALUES("1067","de_DE","Produkt - Deklination Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1067","en_US","Product - attributes table header","",""); -INSERT INTO `hook_i18n` VALUES("1067","es_ES","Producto - encabezado de la tabla de atributos","",""); -INSERT INTO `hook_i18n` VALUES("1067","fr_FR","Produit - colonne tableau attributs","",""); -INSERT INTO `hook_i18n` VALUES("1068","de_DE","Produkt - Deklination Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1068","en_US","Product - attributes table row","",""); -INSERT INTO `hook_i18n` VALUES("1068","es_ES","Producto - fila de la tabla de atributos","",""); -INSERT INTO `hook_i18n` VALUES("1068","fr_FR","Produit - ligne tableau attributs","",""); -INSERT INTO `hook_i18n` VALUES("1069","de_DE","Produkt - Charakteristiken Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1069","en_US","Product - features-table-header","",""); -INSERT INTO `hook_i18n` VALUES("1069","es_ES","Producto - encabezado de la tabla de características","",""); -INSERT INTO `hook_i18n` VALUES("1069","fr_FR","Produit - colonne tableau caractéristiques","",""); -INSERT INTO `hook_i18n` VALUES("1070","de_DE","Produkt - Charakteristiken Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1070","en_US","Product - features table row","",""); -INSERT INTO `hook_i18n` VALUES("1070","es_ES","Producto - fila de la tabla de características","",""); -INSERT INTO `hook_i18n` VALUES("1070","fr_FR","Produit - ligne tableau caractéristiques","",""); -INSERT INTO `hook_i18n` VALUES("1071","de_DE","Template - Tabellenkopf attributs","",""); -INSERT INTO `hook_i18n` VALUES("1071","en_US","Template - attributes table header","",""); -INSERT INTO `hook_i18n` VALUES("1071","es_ES","Plantilla - cabecera de la tabla de atributos","",""); -INSERT INTO `hook_i18n` VALUES("1071","fr_FR","Gabarit - colonne tableau attributs","",""); -INSERT INTO `hook_i18n` VALUES("1072","de_DE","Template - Tabellenzeile attributs","",""); -INSERT INTO `hook_i18n` VALUES("1072","en_US","Template - attributes table row","",""); -INSERT INTO `hook_i18n` VALUES("1072","es_ES","Plantilla - fila de la tabla de atributos","",""); -INSERT INTO `hook_i18n` VALUES("1072","fr_FR","Gabarit - ligne tableau attributs","",""); -INSERT INTO `hook_i18n` VALUES("1073","de_DE","Template - Charakteristiken Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1073","en_US","Template - features-table-header","",""); -INSERT INTO `hook_i18n` VALUES("1073","es_ES","Plantilla - encabezado de tabla de características","",""); -INSERT INTO `hook_i18n` VALUES("1073","fr_FR","Gabarit - colonne tableau caractéristiques","",""); -INSERT INTO `hook_i18n` VALUES("1074","de_DE","Template - Charakteristiken Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1074","en_US","Template - features table row","",""); -INSERT INTO `hook_i18n` VALUES("1074","es_ES","Plantilla - fila de la tabla de características","",""); -INSERT INTO `hook_i18n` VALUES("1074","fr_FR","Gabarit - ligne tableau caractéristiques","",""); -INSERT INTO `hook_i18n` VALUES("1075","de_DE","Templates - oben","",""); -INSERT INTO `hook_i18n` VALUES("1075","en_US","Templates - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1075","es_ES","Plantillas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1075","fr_FR","Gabarits - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1076","de_DE","Templates - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1076","en_US","Templates - table header","",""); -INSERT INTO `hook_i18n` VALUES("1076","es_ES","Plantillas - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1076","fr_FR","Gabarits - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1077","de_DE","Templates - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1077","en_US","Templates - table row","",""); -INSERT INTO `hook_i18n` VALUES("1077","es_ES","Plantillas - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1077","fr_FR","Gabarits - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1078","de_DE","Templates - unten","",""); -INSERT INTO `hook_i18n` VALUES("1078","en_US","Templates - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1078","es_ES","Plantillas - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1078","fr_FR","Gabarits - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1079","de_DE","Template - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1079","en_US","Template - create form","",""); -INSERT INTO `hook_i18n` VALUES("1079","es_ES","Plantilla - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1079","fr_FR","Gabarit - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1080","de_DE","Template - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1080","en_US","Template - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1080","es_ES","Plantilla - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1080","fr_FR","Gabarit - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1081","de_DE","Templates - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1081","en_US","Templates - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1081","es_ES","Plantillas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1081","fr_FR","Gabarits - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1082","de_DE","Konfiguration - oben","",""); -INSERT INTO `hook_i18n` VALUES("1082","en_US","Configuration - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1082","es_ES","Configuración - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1082","fr_FR","Configuration - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1083","de_DE","Konfiguration - oben an dem Katalogsbereich","",""); -INSERT INTO `hook_i18n` VALUES("1083","en_US","Configuration - at the top of the catalog area","",""); -INSERT INTO `hook_i18n` VALUES("1083","es_ES","Configuración - en la parte superior de la zona de catálogo","",""); -INSERT INTO `hook_i18n` VALUES("1083","fr_FR","Configuration - en haut de la zone catalogue","",""); -INSERT INTO `hook_i18n` VALUES("1084","de_DE","Konfiguration - unten an dem katalog","",""); -INSERT INTO `hook_i18n` VALUES("1084","en_US","Configuration - at the bottom of the catalog","",""); -INSERT INTO `hook_i18n` VALUES("1084","es_ES","Configuración - en la parte inferior del catálogo","",""); -INSERT INTO `hook_i18n` VALUES("1084","fr_FR","Configuration - en bas du catlogue","",""); -INSERT INTO `hook_i18n` VALUES("1085","de_DE","Konfiguration - oben an der Lieferzone","",""); -INSERT INTO `hook_i18n` VALUES("1085","en_US","Configuration - at the top of the shipping area","",""); -INSERT INTO `hook_i18n` VALUES("1085","es_ES","Configuración - en la parte superior del área de envío","",""); -INSERT INTO `hook_i18n` VALUES("1085","fr_FR","Configuration - en haut de la zone livraison","",""); -INSERT INTO `hook_i18n` VALUES("1086","de_DE","Konfiguration - unten an der Lieferzone","",""); -INSERT INTO `hook_i18n` VALUES("1086","en_US","Configuration - at the bottom of the shipping area","",""); -INSERT INTO `hook_i18n` VALUES("1086","es_ES","Configuración - en la parte inferior de la zona de envío","",""); -INSERT INTO `hook_i18n` VALUES("1086","fr_FR","Configuration - en bas de la zone livraison","",""); -INSERT INTO `hook_i18n` VALUES("1087","de_DE","Konfiguration - oben an dem Systembereich","",""); -INSERT INTO `hook_i18n` VALUES("1087","en_US","Configuration - at the top of the system area","",""); -INSERT INTO `hook_i18n` VALUES("1087","es_ES","Configuración - en la parte superior del área del sistema","",""); -INSERT INTO `hook_i18n` VALUES("1087","fr_FR","Configuration - en haut de la zone système","",""); -INSERT INTO `hook_i18n` VALUES("1088","de_DE","Konfiguration - unten an dem Systembereich","",""); -INSERT INTO `hook_i18n` VALUES("1088","en_US","Configuration - at the bottom of the system area","",""); -INSERT INTO `hook_i18n` VALUES("1088","es_ES","Configuración - en la parte inferior de la zona del sistema","",""); -INSERT INTO `hook_i18n` VALUES("1088","fr_FR","Configuration - en bas de la zone système","",""); -INSERT INTO `hook_i18n` VALUES("1089","de_DE","Konfiguration - unten","",""); -INSERT INTO `hook_i18n` VALUES("1089","en_US","Configuration - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1089","es_ES","Configuración - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1089","fr_FR","Configuration - bas","",""); -INSERT INTO `hook_i18n` VALUES("1090","de_DE","Konfiguration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1090","en_US","Configuration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1090","es_ES","Configuración - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1090","fr_FR","Configuration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1091","de_DE","Dashboard - oben","",""); -INSERT INTO `hook_i18n` VALUES("1091","en_US","Dashboard - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1091","es_ES","Dashboard - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1091","fr_FR","Tableau de bord - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1092","de_DE","Dashboard - in der Mitte","",""); -INSERT INTO `hook_i18n` VALUES("1092","en_US","Dashboard - middle","",""); -INSERT INTO `hook_i18n` VALUES("1092","es_ES","Dashboard - medio","",""); -INSERT INTO `hook_i18n` VALUES("1092","fr_FR","Tableau de bord - au milieu","",""); -INSERT INTO `hook_i18n` VALUES("1093","de_DE","Dashboard - unten","",""); -INSERT INTO `hook_i18n` VALUES("1093","en_US","Dashboard - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1093","es_ES","Dashboard - fondo","",""); -INSERT INTO `hook_i18n` VALUES("1093","fr_FR","Tableau de bord - bas","",""); -INSERT INTO `hook_i18n` VALUES("1094","de_DE","Bestellungen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1094","en_US","Orders - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1094","es_ES","Pedidos - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1094","fr_FR","Commandes - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1095","de_DE","Bestellungen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1095","en_US","Orders - table header","",""); -INSERT INTO `hook_i18n` VALUES("1095","es_ES","Pedidos - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1095","fr_FR","Commandes - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1096","de_DE","Bestellungen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1096","en_US","Orders - table row","",""); -INSERT INTO `hook_i18n` VALUES("1096","es_ES","Pedidos - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1096","fr_FR","Commandes - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1097","de_DE","Bestellungen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1097","en_US","Orders - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1097","es_ES","Pedidos - pie de página","",""); -INSERT INTO `hook_i18n` VALUES("1097","fr_FR","Commandes - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1098","de_DE","Bestellungen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1098","en_US","Orders - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1098","es_ES","Pedidos - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1098","fr_FR","Commandes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1099","de_DE","Lieferzone - oben","",""); -INSERT INTO `hook_i18n` VALUES("1099","en_US","Delivery zone - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1099","es_ES","Zona de entrega - En la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1099","fr_FR","Zone de livraison - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1100","de_DE","Lieferzone - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1100","en_US","Delivery zone - table header","",""); -INSERT INTO `hook_i18n` VALUES("1100","es_ES","Zona de entrega - en el encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1100","fr_FR","Zone de livraison - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1101","de_DE","Lieferzone - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1101","en_US","Delivery zone - table row","",""); -INSERT INTO `hook_i18n` VALUES("1101","es_ES","Zona de entrega - en la fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1101","fr_FR","Zone de livraison - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1102","de_DE","Lieferzone - unten","",""); -INSERT INTO `hook_i18n` VALUES("1102","en_US","Delivery zone - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1102","es_ES","Zona de entrega - en el pie","",""); -INSERT INTO `hook_i18n` VALUES("1102","fr_FR","Zone de livraison - bas","",""); -INSERT INTO `hook_i18n` VALUES("1103","de_DE","Lieferzone - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1103","en_US","Delivery zone - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1103","es_ES","Zona de entrega - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1103","fr_FR","Zone de livraison - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1104","de_DE","Inhalt - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1104","en_US","Content - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1104","es_ES","Contenido - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1104","fr_FR","Contenu - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1105","de_DE","Accueil - oben","",""); -INSERT INTO `hook_i18n` VALUES("1105","en_US","Home - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1105","es_ES","Inicio - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1105","fr_FR","Accueil - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1106","de_DE","Accueil - unten","",""); -INSERT INTO `hook_i18n` VALUES("1106","en_US","Home - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1106","es_ES","Inicio - fondo","",""); -INSERT INTO `hook_i18n` VALUES("1106","fr_FR","Accueil - bas","",""); -INSERT INTO `hook_i18n` VALUES("1107","de_DE","Accueil - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1107","en_US","Home - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1107","es_ES","Inicio - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1107","fr_FR","Accueil - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1108","de_DE","Modulen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1108","en_US","Modules - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1108","es_ES","Módulos - al inicio","",""); -INSERT INTO `hook_i18n` VALUES("1108","fr_FR","Modules - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1109","de_DE","Modulen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1109","en_US","Modules - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1109","es_ES","Módulos - base","",""); -INSERT INTO `hook_i18n` VALUES("1109","fr_FR","Modules - bas","",""); -INSERT INTO `hook_i18n` VALUES("1110","de_DE","Modulen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1110","en_US","Modules - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1110","es_ES","Módulos - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1110","fr_FR","Modules - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1111","de_DE","Sprachen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1111","en_US","Languages - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1111","es_ES","Idiomas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1111","fr_FR","Langages - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1112","de_DE","Sprachen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1112","en_US","Languages - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1112","es_ES","Idiomas - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1112","fr_FR","Langages - bas","",""); -INSERT INTO `hook_i18n` VALUES("1113","de_DE","Sprache - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1113","en_US","Language - create form","",""); -INSERT INTO `hook_i18n` VALUES("1113","es_ES","Idioma - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1113","fr_FR","Langage - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1114","de_DE","Sprachen - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1114","en_US","Languages - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1114","es_ES","Idiomas - Formulario de borrar","",""); -INSERT INTO `hook_i18n` VALUES("1114","fr_FR","Langages - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1115","de_DE","Sprachen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1115","en_US","Languages - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1115","es_ES","Idiomas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1115","fr_FR","Langages - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1116","de_DE","Zone - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1116","en_US","Zone - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1116","es_ES","Zona - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1116","fr_FR","Zone - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1117","de_DE","Lieferzone - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1117","en_US","Delivery zone - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1117","es_ES","Zona de entrega - Editar JavasCript","",""); -INSERT INTO `hook_i18n` VALUES("1117","fr_FR","Zone de livraison - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1118","de_DE","System - JavaScript Logs","",""); -INSERT INTO `hook_i18n` VALUES("1118","en_US","System - logs JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1118","es_ES","Sistema - registros de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1118","fr_FR","Système - logs JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1119","de_DE","Suche - oben","",""); -INSERT INTO `hook_i18n` VALUES("1119","en_US","Search - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1119","es_ES","Búsqueda - al inicio","",""); -INSERT INTO `hook_i18n` VALUES("1119","fr_FR","Recherche - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1120","de_DE","Suche - unten","",""); -INSERT INTO `hook_i18n` VALUES("1120","en_US","Search - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1120","es_ES","Búsqueda - base","",""); -INSERT INTO `hook_i18n` VALUES("1120","fr_FR","Recherche - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1121","de_DE","Suche - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1121","en_US","Search - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1121","es_ES","Búsqueda - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1121","fr_FR","Recherche - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1122","de_DE","Administratoren - oben","",""); -INSERT INTO `hook_i18n` VALUES("1122","en_US","Administrators - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1122","es_ES","Administradores - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1122","fr_FR","Administateurs - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1123","de_DE","Administratoren - unten","",""); -INSERT INTO `hook_i18n` VALUES("1123","en_US","Administrators - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1123","es_ES","Administradores - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1123","fr_FR","Administateurs - bas","",""); -INSERT INTO `hook_i18n` VALUES("1124","de_DE","Administrator - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1124","en_US","Administrator - create form","",""); -INSERT INTO `hook_i18n` VALUES("1124","es_ES","Administrador - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1124","fr_FR","Administateur - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1125","de_DE","Administrator - Änderungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1125","en_US","Administrator - update form","",""); -INSERT INTO `hook_i18n` VALUES("1125","es_ES","Administrador - formulario de actualización","",""); -INSERT INTO `hook_i18n` VALUES("1125","fr_FR","Administateur - formulaire de modification","",""); -INSERT INTO `hook_i18n` VALUES("1126","de_DE","Administrator - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1126","en_US","Administrator - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1126","es_ES","Administrador - formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1126","fr_FR","Administateur - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1127","de_DE","Administratoren - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1127","en_US","Administrators - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1127","es_ES","Administradores - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1127","fr_FR","Administateurs - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1128","de_DE","Modul Hook - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1128","en_US","Module hook - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1128","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1128","fr_FR","Module hook - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1129","de_DE","Versandkonfiguration - oben","",""); -INSERT INTO `hook_i18n` VALUES("1129","en_US","Shipping configuration - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1129","es_ES","Configuración de envío - al inicio","",""); -INSERT INTO `hook_i18n` VALUES("1129","fr_FR","Configuration du transport - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1130","de_DE","Versandkonfiguration - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1130","en_US","Shipping configuration - table header","",""); -INSERT INTO `hook_i18n` VALUES("1130","es_ES","Configuración de envío - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1130","fr_FR","Configuration du transport - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1131","de_DE","Versandkonfiguration - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1131","en_US","Shipping configuration - table row","",""); -INSERT INTO `hook_i18n` VALUES("1131","es_ES","Configuración de envío - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1131","fr_FR","Configuration du transport - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1132","de_DE","Versandkonfiguration - unten","",""); -INSERT INTO `hook_i18n` VALUES("1132","en_US","Shipping configuration - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1132","es_ES","Configuración de envío - base","",""); -INSERT INTO `hook_i18n` VALUES("1132","fr_FR","Configuration du transport - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1133","de_DE","Versandkonfiguration - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1133","en_US","Shipping configuration - create form","",""); -INSERT INTO `hook_i18n` VALUES("1133","es_ES","Configuración de envío - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1133","fr_FR","Configuration du transport - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1134","de_DE","Versandkonfiguration - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1134","en_US","Shipping configuration - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1134","es_ES","Configuración de envío - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1134","fr_FR","Configuration du transport - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1135","de_DE","Versandkonfiguration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1135","en_US","Shipping configuration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1135","es_ES","Configuración de envío - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1135","fr_FR","Configuration du transport - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1136","de_DE","Karakteristiken - oben","",""); -INSERT INTO `hook_i18n` VALUES("1136","en_US","Features - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1136","es_ES","Característica - ir arriba","",""); -INSERT INTO `hook_i18n` VALUES("1136","fr_FR","Caractéristiques - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1137","de_DE","Karakteristiken - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1137","en_US","Features - table header","",""); -INSERT INTO `hook_i18n` VALUES("1137","es_ES","Característica - Encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1137","fr_FR","Caractéristiques - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1138","de_DE","Karakteristiken - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1138","en_US","Features - table row","",""); -INSERT INTO `hook_i18n` VALUES("1138","es_ES","Característica - Fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1138","fr_FR","Caractéristiques - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1139","de_DE","Karakteristiken - unten","",""); -INSERT INTO `hook_i18n` VALUES("1139","en_US","Features - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1139","es_ES","Característica - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1139","fr_FR","Caractéristiques - bas","",""); -INSERT INTO `hook_i18n` VALUES("1140","de_DE","Karakteristik - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1140","en_US","Feature - create form","",""); -INSERT INTO `hook_i18n` VALUES("1140","es_ES","Característica - formulario crear","",""); -INSERT INTO `hook_i18n` VALUES("1140","fr_FR","Caractéristique - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1141","de_DE","Karakteristik - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1141","en_US","Feature - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1141","es_ES","Característica - formulario borrar","",""); -INSERT INTO `hook_i18n` VALUES("1141","fr_FR","Caractéristique - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1142","de_DE","Karakteristik - zu allen hinzufügen Formular","",""); -INSERT INTO `hook_i18n` VALUES("1142","en_US","Feature - add to all form","",""); -INSERT INTO `hook_i18n` VALUES("1142","es_ES","Característica - Agregar a todos los formularios","",""); -INSERT INTO `hook_i18n` VALUES("1142","fr_FR","Caractéristique - formulaire ajouter à tous","",""); -INSERT INTO `hook_i18n` VALUES("1143","de_DE","Karakteristik - multipel Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1143","en_US","Feature - remove to all form","",""); -INSERT INTO `hook_i18n` VALUES("1143","es_ES","Característica - eliminar todos los formularios","",""); -INSERT INTO `hook_i18n` VALUES("1143","fr_FR","Caractéristique - formulaire de suppression multiple","",""); -INSERT INTO `hook_i18n` VALUES("1144","de_DE","Karakteristiken - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1144","en_US","Features - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1144","es_ES","Característica - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1144","fr_FR","Caractéristiques - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1145","de_DE","Modul - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1145","en_US","Module - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1145","es_ES","Módulo - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1145","fr_FR","Module - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1146","de_DE","Modul Hook - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1146","en_US","Module hook - create form","",""); -INSERT INTO `hook_i18n` VALUES("1146","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1146","fr_FR","Module hook - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1147","de_DE","Modul Hook - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1147","en_US","Module hook - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1147","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1147","fr_FR","Module hook - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1148","de_DE","Modul Hook - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1148","en_US","Module hook - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1148","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1148","fr_FR","Point d\'accroche des modules - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("1149","de_DE","Versandkonfiguration - Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1149","en_US","Shipping configuration - Edit","",""); -INSERT INTO `hook_i18n` VALUES("1149","es_ES","Configuración de envío - Editar","",""); -INSERT INTO `hook_i18n` VALUES("1149","fr_FR","Configuration du transport - Modification","",""); -INSERT INTO `hook_i18n` VALUES("1150","de_DE","Versandkonfiguration - Länder Löschungsfomular","",""); -INSERT INTO `hook_i18n` VALUES("1150","en_US","Shipping configuration - country delete form","",""); -INSERT INTO `hook_i18n` VALUES("1150","es_ES","Configuración de envío - formulario de borrado de país","",""); -INSERT INTO `hook_i18n` VALUES("1150","fr_FR","Configuration du transport - formulaire de suppression de pays","",""); -INSERT INTO `hook_i18n` VALUES("1151","de_DE","Versandkonfiguration - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1151","en_US","Shipping configuration - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1151","es_ES","Configuración de envío - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1151","fr_FR","Configuration du transport - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1152","de_DE","E-Mail Sendung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1152","en_US","Mailing system - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1152","es_ES","Sistema de correo - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1152","fr_FR","Envoi des e-mails - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1153","de_DE","E-Mail Sendung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1153","en_US","Mailing system - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1153","es_ES","Sistema de correo - fondo","",""); -INSERT INTO `hook_i18n` VALUES("1153","fr_FR","Envoi des e-mails - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1154","de_DE","E-Mail Sendung - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1154","en_US","Mailing system - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1154","es_ES","Sistema de correo - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1154","fr_FR","Envoi des e-mails - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1155","de_DE","Kategorien - oben","",""); -INSERT INTO `hook_i18n` VALUES("1155","en_US","Categories - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1155","es_ES","Categorías - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1155","fr_FR","Catégories - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1156","de_DE","Kategorien - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1156","en_US","Categories - caption","",""); -INSERT INTO `hook_i18n` VALUES("1156","es_ES","Categorías - título","",""); -INSERT INTO `hook_i18n` VALUES("1156","fr_FR","Catégories - légende","",""); -INSERT INTO `hook_i18n` VALUES("1157","de_DE","Kategorien - Kopfzeile","",""); -INSERT INTO `hook_i18n` VALUES("1157","en_US","Categories - header","",""); -INSERT INTO `hook_i18n` VALUES("1157","es_ES","Categorías - header","",""); -INSERT INTO `hook_i18n` VALUES("1157","fr_FR","Catégories - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1158","de_DE","Kategorien - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1158","en_US","Categories - row","",""); -INSERT INTO `hook_i18n` VALUES("1158","es_ES","Categorías - fila","",""); -INSERT INTO `hook_i18n` VALUES("1158","fr_FR","Catégories - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1159","de_DE","Produkte - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1159","en_US","Products - caption","",""); -INSERT INTO `hook_i18n` VALUES("1159","es_ES","Productos - leyenda","",""); -INSERT INTO `hook_i18n` VALUES("1159","fr_FR","Produits - légende","",""); -INSERT INTO `hook_i18n` VALUES("1160","de_DE","Produkte - Header","",""); -INSERT INTO `hook_i18n` VALUES("1160","en_US","Products - header","",""); -INSERT INTO `hook_i18n` VALUES("1160","es_ES","Productos - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1160","fr_FR","Produits - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1161","de_DE","Produkte - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1161","en_US","Products - row","",""); -INSERT INTO `hook_i18n` VALUES("1161","es_ES","Productos - fila","",""); -INSERT INTO `hook_i18n` VALUES("1161","fr_FR","Produits - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1162","de_DE","Kategorien - unten","",""); -INSERT INTO `hook_i18n` VALUES("1162","en_US","Categories - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1162","es_ES","Categorías - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1162","fr_FR","Catégories - bas","",""); -INSERT INTO `hook_i18n` VALUES("1163","de_DE","Kategorien - unten an dem Katalog","",""); -INSERT INTO `hook_i18n` VALUES("1163","en_US","Categories - at the bottom of the catalog","",""); -INSERT INTO `hook_i18n` VALUES("1163","es_ES","Categorías - en la parte inferior del catálogo","",""); -INSERT INTO `hook_i18n` VALUES("1163","fr_FR","Catégories - en bas du catalogue","",""); -INSERT INTO `hook_i18n` VALUES("1164","de_DE","Kategorie - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1164","en_US","Category - create form","",""); -INSERT INTO `hook_i18n` VALUES("1164","es_ES","Formulario de creación de la categoría-","",""); -INSERT INTO `hook_i18n` VALUES("1164","fr_FR","Catégorie - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1165","de_DE","Produkt - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1165","en_US","Product - create form","",""); -INSERT INTO `hook_i18n` VALUES("1165","es_ES","Producto - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1165","fr_FR","Produit - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1166","de_DE","Kategorie - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1166","en_US","Category - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1166","es_ES","Categoría - formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1166","fr_FR","Catégorie - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1167","de_DE","Produkt - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1167","en_US","Product - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1167","es_ES","Producto - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1167","fr_FR","Produit - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1168","de_DE","Kategorien - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1168","en_US","Categories - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1168","es_ES","Categorías - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1168","fr_FR","Catégories - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1169","de_DE","Variablen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1169","en_US","Variables - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1169","es_ES","Variables - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1169","fr_FR","Variables - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1170","de_DE","Variablen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1170","en_US","Variables - table header","",""); -INSERT INTO `hook_i18n` VALUES("1170","es_ES","Variables - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1170","fr_FR","Variables - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1171","de_DE","Variablen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1171","en_US","Variables - table row","",""); -INSERT INTO `hook_i18n` VALUES("1171","es_ES","Variables - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1171","fr_FR","Variables - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1172","de_DE","Variablen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1172","en_US","Variables - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1172","es_ES","Variables - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1172","fr_FR","Variables - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1173","de_DE","Variable - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1173","en_US","Variable - create form","",""); -INSERT INTO `hook_i18n` VALUES("1173","es_ES","Variable - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1173","fr_FR","Variable - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1174","de_DE","Variable - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1174","en_US","Variable - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1174","es_ES","Variable - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1174","fr_FR","Variable - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1175","de_DE","Variablen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1175","en_US","Variables - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1175","es_ES","Variables - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1175","fr_FR","Variables - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1176","de_DE","Bestellung - Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("1176","en_US","Order - product list","",""); -INSERT INTO `hook_i18n` VALUES("1176","es_ES","Orden - lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("1176","fr_FR","Commande - liste produit","",""); -INSERT INTO `hook_i18n` VALUES("1177","de_DE","Bestellung - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1177","en_US","Order - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1177","es_ES","Orden - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1177","fr_FR","Commande - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1178","de_DE","Shop Informationen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1178","en_US","Store Information - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1178","es_ES","Información de tienda - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1178","fr_FR","Information boutique - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1179","de_DE","Übersetzungen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1179","en_US","Translations - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1179","es_ES","Traducciones - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1179","fr_FR","Traductions - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1180","de_DE","Ordner - oben","",""); -INSERT INTO `hook_i18n` VALUES("1180","en_US","Folder - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1180","es_ES","Carpeta - ir arriba","",""); -INSERT INTO `hook_i18n` VALUES("1180","fr_FR","Dossiers - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1181","de_DE","Ordner - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1181","en_US","Folder - caption","",""); -INSERT INTO `hook_i18n` VALUES("1181","es_ES","Carpeta - título","",""); -INSERT INTO `hook_i18n` VALUES("1181","fr_FR","Dossiers - légende","",""); -INSERT INTO `hook_i18n` VALUES("1182","de_DE","Ordner - Header","",""); -INSERT INTO `hook_i18n` VALUES("1182","en_US","Folder - header","",""); -INSERT INTO `hook_i18n` VALUES("1182","es_ES","Carpeta - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1182","fr_FR","Dossiers - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1183","de_DE","Ordner - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1183","en_US","Folder - row","",""); -INSERT INTO `hook_i18n` VALUES("1183","es_ES","Carpeta - fila","",""); -INSERT INTO `hook_i18n` VALUES("1183","fr_FR","Dossiers - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1184","de_DE","Inhalte - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1184","en_US","Contents - caption","",""); -INSERT INTO `hook_i18n` VALUES("1184","es_ES","Contenido - leyenda","",""); -INSERT INTO `hook_i18n` VALUES("1184","fr_FR","Contenus - légende","",""); -INSERT INTO `hook_i18n` VALUES("1185","de_DE","Inhalte - Kopfzeile","",""); -INSERT INTO `hook_i18n` VALUES("1185","en_US","Contents - header","",""); -INSERT INTO `hook_i18n` VALUES("1185","es_ES","Contenido - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1185","fr_FR","Contenus - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1186","de_DE","Inhalte - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1186","en_US","Contents - row","",""); -INSERT INTO `hook_i18n` VALUES("1186","es_ES","Contenido - fila","",""); -INSERT INTO `hook_i18n` VALUES("1186","fr_FR","Contenus - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1187","de_DE","Ordner - unten","",""); -INSERT INTO `hook_i18n` VALUES("1187","en_US","Folder - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1187","es_ES","Carpeta - abajo","",""); -INSERT INTO `hook_i18n` VALUES("1187","fr_FR","Dossiers - bas","",""); -INSERT INTO `hook_i18n` VALUES("1188","de_DE","Ordner - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1188","en_US","Folder - create form","",""); -INSERT INTO `hook_i18n` VALUES("1188","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1188","fr_FR","Dossier - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1189","de_DE","Inhalt - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1189","en_US","Content - create form","",""); -INSERT INTO `hook_i18n` VALUES("1189","es_ES","Contenido - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1189","fr_FR","Contenu - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1190","de_DE","Ordner - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1190","en_US","Folder - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1190","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1190","fr_FR","Dossier - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1191","de_DE","Inhalt - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1191","en_US","Content - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1191","es_ES","Contenido - Formulario para eliminar","",""); -INSERT INTO `hook_i18n` VALUES("1191","fr_FR","Contenu - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1192","de_DE","Ordner - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1192","en_US","Folder - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1192","es_ES","Carpeta - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1192","fr_FR","Dossiers - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1193","de_DE","Template - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1193","en_US","Template - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1193","es_ES","Plantilla - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1193","fr_FR","Gabarit - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1194","de_DE","Taxe - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1194","en_US","Tax - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1194","es_ES","Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1194","fr_FR","Taxe - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1195","de_DE","Hook - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1195","en_US","Hook - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1195","es_ES","Hook - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1195","fr_FR","Point d\'accroche - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1196","de_DE","Länder - oben","",""); -INSERT INTO `hook_i18n` VALUES("1196","en_US","Countries - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1196","es_ES","Países - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1196","fr_FR","Pays - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1197","de_DE","Länder - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1197","en_US","Countries - table header","",""); -INSERT INTO `hook_i18n` VALUES("1197","es_ES","Países - encabezado de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1197","fr_FR","Pays - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1198","de_DE","Länder - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1198","en_US","Countries - table row","",""); -INSERT INTO `hook_i18n` VALUES("1198","es_ES","Países - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1198","fr_FR","Pays - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1199","de_DE","Länder - unten","",""); -INSERT INTO `hook_i18n` VALUES("1199","en_US","Countries - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1199","es_ES","Países - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1199","fr_FR","Pays - bas","",""); -INSERT INTO `hook_i18n` VALUES("1200","de_DE","Land - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1200","en_US","Country - create form","",""); -INSERT INTO `hook_i18n` VALUES("1200","es_ES","País - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1200","fr_FR","Pays - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1201","de_DE","Land - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1201","en_US","Country - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1201","es_ES","País - formulario para eliminar","",""); -INSERT INTO `hook_i18n` VALUES("1201","fr_FR","Pays - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1202","de_DE","Länder - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1202","en_US","Countries - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1202","es_ES","Países - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1202","fr_FR","Pays - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1203","de_DE","Währungen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1203","en_US","Currencies - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1203","es_ES","Divisas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1203","fr_FR","Devises - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1204","de_DE","Währungen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1204","en_US","Currencies - table header","",""); -INSERT INTO `hook_i18n` VALUES("1204","es_ES","Divisas - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1204","fr_FR","Devises - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1205","de_DE","Währungen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1205","en_US","Currencies - table row","",""); -INSERT INTO `hook_i18n` VALUES("1205","es_ES","Divisas - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1205","fr_FR","Devises - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1206","de_DE","Währungen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1206","en_US","Currencies - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1206","es_ES","Divisas - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1206","fr_FR","Devises - bas","",""); -INSERT INTO `hook_i18n` VALUES("1207","de_DE","Währung - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1207","en_US","Currency - create form","",""); -INSERT INTO `hook_i18n` VALUES("1207","es_ES","Divisas - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1207","fr_FR","Devise - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1208","de_DE","Währung - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1208","en_US","Currency - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1208","es_ES","Moneda - Formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1208","fr_FR","Devise - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1209","de_DE","Währungen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1209","en_US","Currencies - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1209","es_ES","Divisas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1209","fr_FR","Devises - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1210","de_DE","Kunde - Modification","",""); -INSERT INTO `hook_i18n` VALUES("1210","en_US","Customer - Edit","",""); -INSERT INTO `hook_i18n` VALUES("1210","es_ES","Cliente - Editar","",""); -INSERT INTO `hook_i18n` VALUES("1210","fr_FR","Client - Modification","",""); -INSERT INTO `hook_i18n` VALUES("1211","de_DE","Kunde - Adresse-Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1211","en_US","Customer - address create form","",""); -INSERT INTO `hook_i18n` VALUES("1211","es_ES","Cliente - formulario crear dirección","",""); -INSERT INTO `hook_i18n` VALUES("1211","fr_FR","Client - formulaire de création d\'adresse","",""); -INSERT INTO `hook_i18n` VALUES("1212","de_DE","Kunde - Adresse-Änderungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1212","en_US","Customer - address update form","",""); -INSERT INTO `hook_i18n` VALUES("1212","es_ES","Cliente - formulario de actualización de dirección","",""); -INSERT INTO `hook_i18n` VALUES("1212","fr_FR","Client - formulaire de Modification d\'adresse","",""); -INSERT INTO `hook_i18n` VALUES("1213","de_DE","Kunde - Adresse-Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1213","en_US","Customer - address delete form","",""); -INSERT INTO `hook_i18n` VALUES("1213","es_ES","Cliente - Formulario borrar dirección","",""); -INSERT INTO `hook_i18n` VALUES("1213","fr_FR","Client - formulaire de suppression adresse","",""); -INSERT INTO `hook_i18n` VALUES("1214","de_DE","Kunde - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1214","en_US","Customer - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1214","es_ES","Cliente - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1214","fr_FR","Client - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1215","de_DE","Deklinationenangaben - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1215","en_US","Attributes value - table header","",""); -INSERT INTO `hook_i18n` VALUES("1215","es_ES","Valor de atributos - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1215","fr_FR","Valeurs des attributs - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1216","de_DE","Deklinationenangaben - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1216","en_US","Attributes value - table row","",""); -INSERT INTO `hook_i18n` VALUES("1216","es_ES","Valor de atributos - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1216","fr_FR","Valeurs des attributs - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1217","de_DE","Deklinationsangabe - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1217","en_US","Attribute value - create form","",""); -INSERT INTO `hook_i18n` VALUES("1217","es_ES","Valor de atributo - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1217","fr_FR","Valeur d\'attribut - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1218","de_DE","Deklination - ID Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1218","en_US","Attribut - id delete form","",""); -INSERT INTO `hook_i18n` VALUES("1218","es_ES","Atributo - Formulario de eliminación de id","",""); -INSERT INTO `hook_i18n` VALUES("1218","fr_FR","Attribut - formulaire de suppression ID","",""); -INSERT INTO `hook_i18n` VALUES("1219","de_DE","Deklination - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1219","en_US","Attribut - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1219","es_ES","Atributo - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1219","fr_FR","Attribut - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1220","de_DE","Profile - oben","",""); -INSERT INTO `hook_i18n` VALUES("1220","en_US","Profiles - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1220","es_ES","Perfiles - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1220","fr_FR","Profils - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1221","de_DE","Profile - unten","",""); -INSERT INTO `hook_i18n` VALUES("1221","en_US","Profiles - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1221","es_ES","Perfiles - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1221","fr_FR","Profils - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1222","de_DE","Profil - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1222","en_US","Profile - create form","",""); -INSERT INTO `hook_i18n` VALUES("1222","es_ES","Perfil - formulario de alta","",""); -INSERT INTO `hook_i18n` VALUES("1222","fr_FR","Profil - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1223","de_DE","Profil - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1223","en_US","Profile - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1223","es_ES","Perfil - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1223","fr_FR","Profil - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1224","de_DE","Profile - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1224","en_US","Profiles - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1224","es_ES","Perfiles - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1224","fr_FR","Profils - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1225","de_DE","Land - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1225","en_US","Country - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1225","es_ES","País - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1225","fr_FR","Pays - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1226","de_DE","Profil - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1226","en_US","Profile - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1226","es_ES","Perfil - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1226","fr_FR","Profil - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1227","de_DE","Variable - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1227","en_US","Variable - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1227","es_ES","Variable - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1227","fr_FR","Variable - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1228","de_DE","Gutschein - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1228","en_US","Coupon - update JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1228","es_ES","Cupón - actualizar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1228","fr_FR","Code promo - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1229","de_DE","Gutschein - oben","",""); -INSERT INTO `hook_i18n` VALUES("1229","en_US","Coupon - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1229","es_ES","Cupón - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1229","fr_FR","Code promo - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1230","de_DE","Gutschein - Bildunterschrift","",""); -INSERT INTO `hook_i18n` VALUES("1230","en_US","Coupon - list caption","",""); -INSERT INTO `hook_i18n` VALUES("1230","es_ES","Cupón - titulo de la lista","",""); -INSERT INTO `hook_i18n` VALUES("1230","fr_FR","Code promo - légende liste","",""); -INSERT INTO `hook_i18n` VALUES("1231","de_DE","Gutschein - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1231","en_US","Coupon - table header","",""); -INSERT INTO `hook_i18n` VALUES("1231","es_ES","Cupón - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1231","fr_FR","Code promo - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1232","de_DE","Gutschein - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1232","en_US","Coupon - table row","",""); -INSERT INTO `hook_i18n` VALUES("1232","es_ES","Cupón - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1232","fr_FR","Code promo - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1233","de_DE","Gutschein - unten","",""); -INSERT INTO `hook_i18n` VALUES("1233","en_US","Coupon - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1233","es_ES","Cupón - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1233","fr_FR","Code promo - bas","",""); -INSERT INTO `hook_i18n` VALUES("1234","de_DE","Gutschein - JavaScript den Listen","",""); -INSERT INTO `hook_i18n` VALUES("1234","en_US","Coupon - list JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1234","es_ES","Cupón - enlistar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1234","fr_FR","Code promo - JavaScript des listes","",""); -INSERT INTO `hook_i18n` VALUES("1235","de_DE","Modul - Konfiguration","",""); -INSERT INTO `hook_i18n` VALUES("1235","en_US","Module - configuration","",""); -INSERT INTO `hook_i18n` VALUES("1235","es_ES","Módulo - configuración","",""); -INSERT INTO `hook_i18n` VALUES("1235","fr_FR","Module - configuration","",""); -INSERT INTO `hook_i18n` VALUES("1236","de_DE","Modul - JavaScript Konfiguration","",""); -INSERT INTO `hook_i18n` VALUES("1236","en_US","Module - configuration JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1236","es_ES","Módulo - configuración de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1236","fr_FR","Module - JavaScript configuration","",""); -INSERT INTO `hook_i18n` VALUES("1237","de_DE","Nachricht - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1237","en_US","Message - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1237","es_ES","Mensaje - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1237","fr_FR","Message - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1238","de_DE","Bild - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1238","en_US","Image - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1238","es_ES","Imagen - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1238","fr_FR","Image - Modification de JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1239","de_DE","Deklinationen - oben","",""); -INSERT INTO `hook_i18n` VALUES("1239","en_US","Attributes - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1239","es_ES","Atributos - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1239","fr_FR","Attributs - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1240","de_DE","Deklinationen - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1240","en_US","Attributes - table header","",""); -INSERT INTO `hook_i18n` VALUES("1240","es_ES","Atributos - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1240","fr_FR","Attributs - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1241","de_DE","Deklinationen - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1241","en_US","Attributes - table row","",""); -INSERT INTO `hook_i18n` VALUES("1241","es_ES","Atributos - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1241","fr_FR","Attributs - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1242","de_DE","Deklinationen - unten","",""); -INSERT INTO `hook_i18n` VALUES("1242","en_US","Attributes - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1242","es_ES","Atributos - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1242","fr_FR","Attributs - bas","",""); -INSERT INTO `hook_i18n` VALUES("1243","de_DE","Deklination - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1243","en_US","Attribut - create form","",""); -INSERT INTO `hook_i18n` VALUES("1243","es_ES","Atributo - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1243","fr_FR","Attribut - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1244","de_DE","Deklination - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1244","en_US","Attribut - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1244","es_ES","Atributo - formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1244","fr_FR","Attribut - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1245","de_DE","Deklination - zu allen hinzufügen Formular","",""); -INSERT INTO `hook_i18n` VALUES("1245","en_US","Attribut - add to all form","",""); -INSERT INTO `hook_i18n` VALUES("1245","es_ES","Atributo - agregar a todos los formularios","",""); -INSERT INTO `hook_i18n` VALUES("1245","fr_FR","Attribut - formulaire ajouter à tous","",""); -INSERT INTO `hook_i18n` VALUES("1246","de_DE","Deklination - multipel Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1246","en_US","Attribut - remove to all form","",""); -INSERT INTO `hook_i18n` VALUES("1246","es_ES","Atributo - quitar a todos","",""); -INSERT INTO `hook_i18n` VALUES("1246","fr_FR","Attribut - formulaire de suppression multiple","",""); -INSERT INTO `hook_i18n` VALUES("1247","de_DE","Deklinationen - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1247","en_US","Attributes - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1247","es_ES","Atributos - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1247","fr_FR","Attributs - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1248","de_DE","Logs - oben","",""); -INSERT INTO `hook_i18n` VALUES("1248","en_US","Logs - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1248","es_ES","Registros - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1248","fr_FR","Logs - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1249","de_DE","Logs - unten","",""); -INSERT INTO `hook_i18n` VALUES("1249","en_US","Logs - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1249","es_ES","Registros - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1249","fr_FR","Logs - bas","",""); -INSERT INTO `hook_i18n` VALUES("1250","de_DE","Protokolle - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1250","en_US","Logs - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1250","es_ES","Registros - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1250","fr_FR","Journaux - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1251","de_DE","Ordner - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1251","en_US","Folder - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1251","es_ES","Carpeta - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1251","fr_FR","Dossier - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1252","de_DE","Hooks - oben","",""); -INSERT INTO `hook_i18n` VALUES("1252","en_US","Hooks - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1252","es_ES","Hooks - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1252","fr_FR","Point d\'accroches - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1253","de_DE","Hooks - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1253","en_US","Hooks - table header","",""); -INSERT INTO `hook_i18n` VALUES("1253","es_ES","Hooks - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1253","fr_FR","Point d\'accroches - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1254","de_DE","Hooks - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1254","en_US","Hooks - table row","",""); -INSERT INTO `hook_i18n` VALUES("1254","es_ES","Hooks - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1254","fr_FR","Point d\'accroches - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1255","de_DE","Hooks - unten","",""); -INSERT INTO `hook_i18n` VALUES("1255","en_US","Hooks - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1255","es_ES","Hooks - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1255","fr_FR","Point d\'accroches - bas","",""); -INSERT INTO `hook_i18n` VALUES("1256","de_DE","Hook - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1256","en_US","Hook - create form","",""); -INSERT INTO `hook_i18n` VALUES("1256","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1256","fr_FR","Point d\'accroche - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1257","de_DE","Hook - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1257","en_US","Hook - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1257","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1257","fr_FR","Point d\'accroche - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1258","de_DE","Hooks - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1258","en_US","Hooks - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1258","es_ES","Hooks - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1258","fr_FR","Points d\'accroche - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("1259","de_DE","Layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("1259","en_US","Layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("1259","es_ES","Diseño - CSS","",""); -INSERT INTO `hook_i18n` VALUES("1259","fr_FR","Mise en page - CSS","",""); -INSERT INTO `hook_i18n` VALUES("1260","de_DE","Layout - vor der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1260","en_US","Layout - before topbar","",""); -INSERT INTO `hook_i18n` VALUES("1260","es_ES","Diseño - antes de la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1260","fr_FR","Mise en page - avant la barre de titre","",""); -INSERT INTO `hook_i18n` VALUES("1261","de_DE","Layout - in der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1261","en_US","Layout - inside top bar","",""); -INSERT INTO `hook_i18n` VALUES("1261","es_ES","Diseño - en la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1261","fr_FR","Mise en page - dans la barre de titre","",""); -INSERT INTO `hook_i18n` VALUES("1262","de_DE","Layout - nach der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1262","en_US","Layout - after top bar","",""); -INSERT INTO `hook_i18n` VALUES("1262","es_ES","Diseño - después de la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1262","fr_FR","Mise en page - après la barre de titre","",""); -INSERT INTO `hook_i18n` VALUES("1263","de_DE","Layout - vor dem Top Menü","",""); -INSERT INTO `hook_i18n` VALUES("1263","en_US","Layout - before top menu","",""); -INSERT INTO `hook_i18n` VALUES("1263","es_ES","Diseño - antes del menú principal","",""); -INSERT INTO `hook_i18n` VALUES("1263","fr_FR","Mise en page - avant le menu haut","",""); -INSERT INTO `hook_i18n` VALUES("1264","de_DE","Layout - in Top-Menü Elementen","",""); -INSERT INTO `hook_i18n` VALUES("1264","en_US","Layout - in top menu items","",""); -INSERT INTO `hook_i18n` VALUES("1264","es_ES","Diseño - en la parte superior del menú artículos","",""); -INSERT INTO `hook_i18n` VALUES("1264","fr_FR","Mise en page - éléments du menu haut","",""); -INSERT INTO `hook_i18n` VALUES("1265","de_DE","Layout - nach dem Top Menü","",""); -INSERT INTO `hook_i18n` VALUES("1265","en_US","Layout - after top menu","",""); -INSERT INTO `hook_i18n` VALUES("1265","es_ES","Diseño - después del menú principal","",""); -INSERT INTO `hook_i18n` VALUES("1265","fr_FR","Mise en page - après le menu haut","",""); -INSERT INTO `hook_i18n` VALUES("1266","de_DE","Layout - vor dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("1266","en_US","Layout - before footer","",""); -INSERT INTO `hook_i18n` VALUES("1266","es_ES","Diseño - antes del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("1266","fr_FR","Mise en page - avant le pied de page","",""); -INSERT INTO `hook_i18n` VALUES("1267","de_DE","Layout - Im Footer","",""); -INSERT INTO `hook_i18n` VALUES("1267","en_US","Layout - in footer","",""); -INSERT INTO `hook_i18n` VALUES("1267","es_ES","Diseño - en el pie de página","",""); -INSERT INTO `hook_i18n` VALUES("1267","fr_FR","Mise en page - dans le pied de page","",""); -INSERT INTO `hook_i18n` VALUES("1268","de_DE","Layout - nach dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("1268","en_US","Layout - after footer","",""); -INSERT INTO `hook_i18n` VALUES("1268","es_ES","Diseño - después de pie de página","",""); -INSERT INTO `hook_i18n` VALUES("1268","fr_FR","Mise en page - après le pied de page","",""); -INSERT INTO `hook_i18n` VALUES("1269","de_DE","Layout - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1269","en_US","Layout - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1269","es_ES","Diseño - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1269","fr_FR","Mise en page - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1270","de_DE","Layout - oben an der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1270","en_US","Layout - at the top of the top bar","",""); -INSERT INTO `hook_i18n` VALUES("1270","es_ES","Diseño - en la parte superior de la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1270","fr_FR","Mise en page - en haut de la barre supérieure","",""); -INSERT INTO `hook_i18n` VALUES("1271","de_DE","Layout - unten an der Titelleiste","",""); -INSERT INTO `hook_i18n` VALUES("1271","en_US","Layout - at the bottom of the top bar","",""); -INSERT INTO `hook_i18n` VALUES("1271","es_ES","Diseño - en la parte inferior de la barra superior","",""); -INSERT INTO `hook_i18n` VALUES("1271","fr_FR","Mise en page - en bas de la barre supérieure","",""); -INSERT INTO `hook_i18n` VALUES("1272","de_DE","Layout - im Kundes-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1272","en_US","Layout - in the menu customers","",""); -INSERT INTO `hook_i18n` VALUES("1272","es_ES","Diseño - en el menú de cliente","",""); -INSERT INTO `hook_i18n` VALUES("1272","fr_FR","Mise en page - dans le menu clients","",""); -INSERT INTO `hook_i18n` VALUES("1273","de_DE","Layout - im Bestellungsmenü","",""); -INSERT INTO `hook_i18n` VALUES("1273","en_US","Layout - in the menu orders","",""); -INSERT INTO `hook_i18n` VALUES("1273","es_ES","Diseño - en el menú de pedidos","",""); -INSERT INTO `hook_i18n` VALUES("1273","fr_FR","Mise en page - dans le menu commandes","",""); -INSERT INTO `hook_i18n` VALUES("1274","de_DE","Layout - im Katalogs-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1274","en_US","Layout - in the menu catalog","",""); -INSERT INTO `hook_i18n` VALUES("1274","es_ES","Diseño - en el menú de catálogo","",""); -INSERT INTO `hook_i18n` VALUES("1274","fr_FR","Mise en page - dans le menu catalogue","",""); -INSERT INTO `hook_i18n` VALUES("1275","de_DE","Layout - im Ordners-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1275","en_US","Layout - in the menu folders","",""); -INSERT INTO `hook_i18n` VALUES("1275","es_ES","Diseño - en el menú de carpetas","",""); -INSERT INTO `hook_i18n` VALUES("1275","fr_FR","Mise en page - dans le menu dossiers","",""); -INSERT INTO `hook_i18n` VALUES("1276","de_DE","Layout - im Tools-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1276","en_US","Layout - in the menu tools","",""); -INSERT INTO `hook_i18n` VALUES("1276","es_ES","Diseño - en el menú de herramientas","",""); -INSERT INTO `hook_i18n` VALUES("1276","fr_FR","Mise en page - dans le menu outils","",""); -INSERT INTO `hook_i18n` VALUES("1277","de_DE","Layout - im Moduls-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1277","en_US","Layout - in the menu modules","",""); -INSERT INTO `hook_i18n` VALUES("1277","es_ES","Diseño - en el menú de módulos","",""); -INSERT INTO `hook_i18n` VALUES("1277","fr_FR","Mise en page - dans le menu modules","",""); -INSERT INTO `hook_i18n` VALUES("1278","de_DE","Layout - im konfigurations-Menü","",""); -INSERT INTO `hook_i18n` VALUES("1278","en_US","Layout - in the menu configuration","",""); -INSERT INTO `hook_i18n` VALUES("1278","es_ES","Diseño - en el menú de configuración","",""); -INSERT INTO `hook_i18n` VALUES("1278","fr_FR","Mise en page - dans le menu configuration","",""); -INSERT INTO `hook_i18n` VALUES("1279","de_DE","Marke - JavaScript Änderung","",""); -INSERT INTO `hook_i18n` VALUES("1279","en_US","Brand - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1279","es_ES","Marca - editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1279","fr_FR","Marque - Modification du JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1280","de_DE","Accueil - Block","",""); -INSERT INTO `hook_i18n` VALUES("1280","en_US","Home - block","",""); -INSERT INTO `hook_i18n` VALUES("1280","es_ES","Inicio - bloque","",""); -INSERT INTO `hook_i18n` VALUES("1280","fr_FR","Accueil - bloc","",""); -INSERT INTO `hook_i18n` VALUES("1281","de_DE","Marken - oben","",""); -INSERT INTO `hook_i18n` VALUES("1281","en_US","Brands - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1281","es_ES","Marcas - en parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1281","fr_FR","Marques - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1282","de_DE","Marken - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1282","en_US","Brands - table header","",""); -INSERT INTO `hook_i18n` VALUES("1282","es_ES","Marcas - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1282","fr_FR","Marques - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1283","de_DE","Marken - Tabellzeilen","",""); -INSERT INTO `hook_i18n` VALUES("1283","en_US","Brands - table row","",""); -INSERT INTO `hook_i18n` VALUES("1283","es_ES","Marcas - file de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1283","fr_FR","Marques - ligne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1284","de_DE","Marken - unten","",""); -INSERT INTO `hook_i18n` VALUES("1284","en_US","Brands - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1284","es_ES","Marcas - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1284","fr_FR","Marques - bas","",""); -INSERT INTO `hook_i18n` VALUES("1285","de_DE","Marke - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1285","en_US","Brand - create form","",""); -INSERT INTO `hook_i18n` VALUES("1285","es_ES","Marca - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1285","fr_FR","Marque - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1286","de_DE","Marke - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1286","en_US","Brand - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1286","es_ES","Marca - formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1286","fr_FR","Marque - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1287","de_DE","Marke - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1287","en_US","Brand - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1287","es_ES","Marca - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1287","fr_FR","Marque - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1288","de_DE","Exporte - oben","",""); -INSERT INTO `hook_i18n` VALUES("1288","en_US","Exports - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1288","es_ES","Exportar - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1288","fr_FR","Exports - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1289","de_DE","Exporte - unten einer Kategorie","",""); -INSERT INTO `hook_i18n` VALUES("1289","en_US","Exports - at the bottom of a category","",""); -INSERT INTO `hook_i18n` VALUES("1289","es_ES","Exportar - en la parte inferior de una categoría","",""); -INSERT INTO `hook_i18n` VALUES("1289","fr_FR","Exports - en bas d\'une catégorie","",""); -INSERT INTO `hook_i18n` VALUES("1290","de_DE","Exporte - unten der Spalte 1","",""); -INSERT INTO `hook_i18n` VALUES("1290","en_US","Exports - at the bottom of column 1","",""); -INSERT INTO `hook_i18n` VALUES("1290","es_ES","Exportar - en la parte inferior de la columna 1","",""); -INSERT INTO `hook_i18n` VALUES("1290","fr_FR","Exports - en bas de la colonne 1","",""); -INSERT INTO `hook_i18n` VALUES("1291","de_DE","Exporte - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1291","en_US","Exports - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1291","es_ES","Exportar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1291","fr_FR","Exports - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1292","de_DE","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1292","en_US","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1292","es_ES","Exportación - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1292","fr_FR","Export - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1293","de_DE","Marke - Inhalt","",""); -INSERT INTO `hook_i18n` VALUES("1293","en_US","Brand - content","",""); -INSERT INTO `hook_i18n` VALUES("1293","es_ES","Marca - contenido","",""); -INSERT INTO `hook_i18n` VALUES("1293","fr_FR","Marque - contenu","",""); -INSERT INTO `hook_i18n` VALUES("1294","de_DE","Kunde - Bestellungs-Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1294","en_US","Customer - order table header","",""); -INSERT INTO `hook_i18n` VALUES("1294","es_ES","Cliente - cabecera tabla de pedidos","",""); -INSERT INTO `hook_i18n` VALUES("1294","fr_FR","Client - colonne tableau commande","",""); -INSERT INTO `hook_i18n` VALUES("1295","de_DE","Kunde - Bestellungs-Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1295","en_US","Customer - order table row","",""); -INSERT INTO `hook_i18n` VALUES("1295","es_ES","Cliente - celda tabla pedidos","",""); -INSERT INTO `hook_i18n` VALUES("1295","fr_FR","Client - ligne tableau commande","",""); -INSERT INTO `hook_i18n` VALUES("1296","de_DE","Sonderangebote - oben","",""); -INSERT INTO `hook_i18n` VALUES("1296","en_US","Sales - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1296","es_ES","Ventas - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1296","fr_FR","Promotions - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1297","de_DE","Sonderangebote - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1297","en_US","Sales - table header","",""); -INSERT INTO `hook_i18n` VALUES("1297","es_ES","Ventas - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1297","fr_FR","Promotions - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1298","de_DE","Sonderangebote - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1298","en_US","Sales - table row","",""); -INSERT INTO `hook_i18n` VALUES("1298","es_ES","Ventas - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1298","fr_FR","Promotions - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1299","de_DE","Sonderangebote - unten","",""); -INSERT INTO `hook_i18n` VALUES("1299","en_US","Sales - at the bottom","",""); -INSERT INTO `hook_i18n` VALUES("1299","es_ES","Ventas - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1299","fr_FR","Promotions - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1300","de_DE","Sonderangebot - Erstellungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1300","en_US","Sale - create form","",""); -INSERT INTO `hook_i18n` VALUES("1300","es_ES","Venta - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1300","fr_FR","Promotion - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1301","de_DE","Sonderangebot - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1301","en_US","Sale - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1301","es_ES","Venta - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1301","fr_FR","Promotion - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1302","de_DE","Sonderangebote - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1302","en_US","Sales - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1302","es_ES","Ventas - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1302","fr_FR","Promotions - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1303","de_DE","Produkt - unten einer Produkt-Kombination","",""); -INSERT INTO `hook_i18n` VALUES("1303","en_US","Product - at the bottom of a product combination","",""); -INSERT INTO `hook_i18n` VALUES("1303","es_ES","Producto - al pie de la combinación de un producto","",""); -INSERT INTO `hook_i18n` VALUES("1303","fr_FR","Produit - en bas d\'une combinaison de déclinaisons","",""); -INSERT INTO `hook_i18n` VALUES("1304","de_DE","Layout - vor dem Hauptinhaltsbereich","",""); -INSERT INTO `hook_i18n` VALUES("1304","en_US","Layout - Before the main content","",""); -INSERT INTO `hook_i18n` VALUES("1304","es_ES","Diseño - antes el contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("1304","fr_FR","Layout - Avant le contenu principal","",""); -INSERT INTO `hook_i18n` VALUES("1305","de_DE","Admin layout - Nach dem Hauptinhalt","",""); -INSERT INTO `hook_i18n` VALUES("1305","en_US","Admin layout - After the main content","",""); -INSERT INTO `hook_i18n` VALUES("1305","es_ES","Diseño de administración - Después del contenido principal","",""); -INSERT INTO `hook_i18n` VALUES("1305","fr_FR","Admin layout - Après le contenu principal","",""); -INSERT INTO `hook_i18n` VALUES("1306","de_DE","Kategorie - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1306","en_US","Category - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1306","es_ES","Categoría - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1306","fr_FR","Catégorie - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1307","de_DE","Produkt - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1307","en_US","Product - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1307","es_ES","Producto - Pestaña","",""); -INSERT INTO `hook_i18n` VALUES("1307","fr_FR","Produit - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1308","de_DE","Ordner - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1308","en_US","Folder - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1308","es_ES","Carpeta - Pestaña","",""); -INSERT INTO `hook_i18n` VALUES("1308","fr_FR","Dossier - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1309","de_DE","Inhalt - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1309","en_US","Content - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1309","es_ES","Contenido - Pestaña","",""); -INSERT INTO `hook_i18n` VALUES("1309","fr_FR","Contenu - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1310","de_DE","Marke - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1310","en_US","Brand - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1310","es_ES","Marca - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1310","fr_FR","Marque - Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1311","de_DE","Bestellungs-Änderung - Lieferadresse","",""); -INSERT INTO `hook_i18n` VALUES("1311","en_US","Order edit - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("1311","es_ES","Editar Orden - dirección de envío","",""); -INSERT INTO `hook_i18n` VALUES("1311","fr_FR","Modification commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("1312","de_DE","Produktseite - oben im Formular","",""); -INSERT INTO `hook_i18n` VALUES("1312","en_US","Product page - On the top of the form","",""); -INSERT INTO `hook_i18n` VALUES("1312","es_ES","Página de producto - en la parte superior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("1312","fr_FR","Page produit - En haut du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("1313","de_DE","Produktseite - unten an dem Formular","",""); -INSERT INTO `hook_i18n` VALUES("1313","en_US","Product page - On the bottom of the form","",""); -INSERT INTO `hook_i18n` VALUES("1313","es_ES","Página del producto - en la parte inferior del formulario","",""); -INSERT INTO `hook_i18n` VALUES("1313","fr_FR","Page produit - En bas du formulaire","",""); -INSERT INTO `hook_i18n` VALUES("1314","de_DE","Brand edit Seite - im Formular","",""); -INSERT INTO `hook_i18n` VALUES("1314","en_US","Brand edit page - in the form","",""); -INSERT INTO `hook_i18n` VALUES("1314","es_ES","Página de edición de marca - en formulario","",""); -INSERT INTO `hook_i18n` VALUES("1314","fr_FR","Page brand edit - dans formulaire","",""); -INSERT INTO `hook_i18n` VALUES("1315","de_DE","Sonderangebot Änderungsseite - javascript last call block","",""); -INSERT INTO `hook_i18n` VALUES("1315","en_US","Sale edit page - javascript last call block","",""); -INSERT INTO `hook_i18n` VALUES("1315","es_ES","Página de edición de Venta - última bloque de llamada JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1315","fr_FR","Page sale edit - appel javascript","",""); -INSERT INTO `hook_i18n` VALUES("1316","de_DE","API Seite - oben","",""); -INSERT INTO `hook_i18n` VALUES("1316","en_US","Api page - at top","",""); -INSERT INTO `hook_i18n` VALUES("1316","es_ES","Página de la API - en la parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1316","fr_FR","Page api - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1317","de_DE","API Seite - unten","",""); -INSERT INTO `hook_i18n` VALUES("1317","en_US","Api page - at bottom","",""); -INSERT INTO `hook_i18n` VALUES("1317","es_ES","Página de la API - en la parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1317","fr_FR","Page api - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1318","de_DE","API Seite - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1318","en_US","Api page - in deletion form","",""); -INSERT INTO `hook_i18n` VALUES("1318","es_ES","Página de Api - en formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1318","fr_FR","Page api - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1319","de_DE","Gutschein-Seite - Löschungsformular","",""); -INSERT INTO `hook_i18n` VALUES("1319","en_US","Coupon page - in deletion form","",""); -INSERT INTO `hook_i18n` VALUES("1319","es_ES","Página de cupón - en formulario de eliminación","",""); -INSERT INTO `hook_i18n` VALUES("1319","fr_FR","Page coupon - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1320","de_DE","Bestellung - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1320","en_US","Order - Tab","",""); -INSERT INTO `hook_i18n` VALUES("1320","es_ES","Orden - Pestaña","",""); -INSERT INTO `hook_i18n` VALUES("1320","fr_FR","Commande- Onglet","",""); -INSERT INTO `hook_i18n` VALUES("1321","de_DE","Profil - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1321","en_US","Profile - table header","",""); -INSERT INTO `hook_i18n` VALUES("1321","es_ES","Perfil - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1321","fr_FR","Profil - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1322","de_DE","Profil - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1322","en_US","Profile - table row","",""); -INSERT INTO `hook_i18n` VALUES("1322","es_ES","Perfil - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1322","fr_FR","Profil - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1323","de_DE","Import - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1323","en_US","Import - table header","",""); -INSERT INTO `hook_i18n` VALUES("1323","es_ES","Importar - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1323","fr_FR","Import - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1324","de_DE","Import - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1324","en_US","Import - table row","",""); -INSERT INTO `hook_i18n` VALUES("1324","es_ES","Importar - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1324","fr_FR","Import - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1325","de_DE","Export - Tabellenkopf","",""); -INSERT INTO `hook_i18n` VALUES("1325","en_US","Export - table header","",""); -INSERT INTO `hook_i18n` VALUES("1325","es_ES","Exportación - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1325","fr_FR","Export - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1326","de_DE","Export - Tabellenzeile","",""); -INSERT INTO `hook_i18n` VALUES("1326","en_US","Export - table row","",""); -INSERT INTO `hook_i18n` VALUES("1326","es_ES","Exportación - fila de la tabla","",""); -INSERT INTO `hook_i18n` VALUES("1326","fr_FR","Export - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1327","de_DE","Kategorie Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1327","en_US","Category edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1327","es_ES","Categoría edición - superior","",""); -INSERT INTO `hook_i18n` VALUES("1327","fr_FR","Édition d\'une categorie - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1328","de_DE","Kategorie Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1328","en_US","Category edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1328","es_ES","Editar categoría - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1328","fr_FR","Édition d\'une categorie - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1329","de_DE","Marke Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1329","en_US","Brand edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1329","es_ES","Editar marca - superior","",""); -INSERT INTO `hook_i18n` VALUES("1329","fr_FR","Édition d\'une marque - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1330","de_DE","Marke Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1330","en_US","Brand edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1330","es_ES","Editar marca - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1330","fr_FR","Édition d\'une marque - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1331","de_DE","Deklination Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1331","en_US","Attribute edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1331","es_ES","Editar atributo - superior","",""); -INSERT INTO `hook_i18n` VALUES("1331","fr_FR","Édition d\'une déclinaison - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1332","de_DE","Deklination Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1332","en_US","Attribute edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1332","es_ES","Edición de atributos - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1332","fr_FR","Édition d\'une déclinaison - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1333","de_DE","Währung Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1333","en_US","Currency edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1333","es_ES","Editar Monedas - Cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1333","fr_FR","Édition d\'une devise - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1334","de_DE","Währung Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1334","en_US","Currency edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1334","es_ES","Editar Monedas - Pie","",""); -INSERT INTO `hook_i18n` VALUES("1334","fr_FR","Édition d\'une devise - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1335","de_DE","Währung Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1335","en_US","Country edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1335","es_ES","Edición de país - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1335","fr_FR","Édition d\'un pays - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1336","de_DE","Währung Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1336","en_US","Country edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1336","es_ES","Edición de pais - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1336","fr_FR","Édition d\'un pays - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1337","de_DE","Inhalt Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1337","en_US","Content edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1337","es_ES","Editar contenido - superior","",""); -INSERT INTO `hook_i18n` VALUES("1337","fr_FR","Édition d\'un contenu - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1338","de_DE","Inhalt Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1338","en_US","Content edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1338","es_ES","Editar Contenido - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1338","fr_FR","Édition d\'un contenu - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1339","de_DE","Charakteristik Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1339","en_US","Feature edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1339","es_ES","Editar Característica - superior","",""); -INSERT INTO `hook_i18n` VALUES("1339","fr_FR","Édition d\'une caractéristique - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1340","de_DE","Charakteristik Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1340","en_US","Feature edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1340","es_ES","Editar Característica - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1340","fr_FR","Édition d\'une caractéristique - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1341","de_DE","Dokument Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1341","en_US","Document edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1341","es_ES","Edición de documentos - cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1341","fr_FR","Édition d\'un document - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1342","de_DE","Dokument Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1342","en_US","Document edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1342","es_ES","Edición de documentos - pie","",""); -INSERT INTO `hook_i18n` VALUES("1342","fr_FR","Édition d\'un document - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1343","de_DE","Kunde Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1343","en_US","Client edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1343","es_ES","Editar cliente - superior","",""); -INSERT INTO `hook_i18n` VALUES("1343","fr_FR","Édition d\'un client - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1344","de_DE","Kunde Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1344","en_US","Client edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1344","es_ES","Editar cliente - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1344","fr_FR","Édition d\'un client - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1345","de_DE","Bild Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1345","en_US","Image edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1345","es_ES","Edición de imagen - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1345","fr_FR","Édition d\'image - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1346","de_DE","Bild Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1346","en_US","Image edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1346","es_ES","Edición de imagen - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1346","fr_FR","Édition d\'image - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1347","de_DE","Hook Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1347","en_US","Hook edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1347","es_ES","Edición de Hook - superior","",""); -INSERT INTO `hook_i18n` VALUES("1347","fr_FR","Édition d\'hook - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1348","de_DE","Hook Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1348","en_US","Hook edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1348","es_ES","Edición de Hook - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1348","fr_FR","Édition d\'hook - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1349","de_DE","Ordner Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1349","en_US","Folder edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1349","es_ES","Edición de carpeta - superior","",""); -INSERT INTO `hook_i18n` VALUES("1349","fr_FR","Édition d\'un dossier - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1350","de_DE","Ordner Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1350","en_US","Folder edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1350","es_ES","Editar carpeta - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1350","fr_FR","Édition d\'un dossier - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1351","de_DE","Modul-Hook Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1351","en_US","Module hook edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1351","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1351","fr_FR","Édition d\'un hook de module - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1352","de_DE","Modul-Hook Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1352","en_US","Module hook edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1352","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("1352","fr_FR","Édition d\'un hook de module - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1353","de_DE","Modul Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1353","en_US","Module edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1353","es_ES","Edición de módulo - tope","",""); -INSERT INTO `hook_i18n` VALUES("1353","fr_FR","Édition d\'un module - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1354","de_DE","Modul Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1354","en_US","Module edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1354","es_ES","Edición de módulo - base","",""); -INSERT INTO `hook_i18n` VALUES("1354","fr_FR","Édition d\'un module - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1355","de_DE","Nachricht Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1355","en_US","Message edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1355","es_ES","Editar mensaje - tope","",""); -INSERT INTO `hook_i18n` VALUES("1355","fr_FR","Édition d\'un message - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1356","de_DE","Nachricht Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1356","en_US","Message edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1356","es_ES","Editar mensaje - base","",""); -INSERT INTO `hook_i18n` VALUES("1356","fr_FR","Édition d\'un message - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1357","de_DE","Profil Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1357","en_US","Profile edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1357","es_ES","Editar Perfil - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1357","fr_FR","Édition d\'un profil - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1358","de_DE","Profil Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1358","en_US","Profile edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1358","es_ES","Editar Perfil - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1358","fr_FR","Édition d\'un profil - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1359","de_DE","Produkt Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1359","en_US","Product edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1359","es_ES","Editar producto - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1359","fr_FR","Édition d\'un produit - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1360","de_DE","Produkt Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1360","en_US","Product edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1360","es_ES","Editar producto - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1360","fr_FR","Édition d\'un produit - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1361","de_DE","Bestellung Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1361","en_US","Order edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1361","es_ES","Edición de Pedido - al tope","",""); -INSERT INTO `hook_i18n` VALUES("1361","fr_FR","Édition d\'une commande - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1362","de_DE","Bestellung Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1362","en_US","Order edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1362","es_ES","Editar Orden - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1362","fr_FR","Édition d\'une commande - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1363","de_DE","Transporteur Lieferzonen Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1363","en_US","Shipping zones edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1363","es_ES","Edición zonas de envío - inicio","",""); -INSERT INTO `hook_i18n` VALUES("1363","fr_FR","Édition des zones de livraison d\'un transporteur - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1364","de_DE","Transporteur Lieferzonen Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1364","en_US","Shipping zones edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1364","es_ES","Edición zonas de envío - base","",""); -INSERT INTO `hook_i18n` VALUES("1364","fr_FR","Édition des zones de livraison d\'un transporteur - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1365","de_DE","Lieferzone Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1365","en_US","Shipping configuration edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1365","es_ES","Configuración de envío - inicio","",""); -INSERT INTO `hook_i18n` VALUES("1365","fr_FR","Édition d\'une zone de livraison - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1366","de_DE","Lieferzone Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1366","en_US","Shipping configuration edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1366","es_ES","Configuración de envío - base","",""); -INSERT INTO `hook_i18n` VALUES("1366","fr_FR","Édition d\'une zone de livraiso - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1367","de_DE","Sonderangebot Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1367","en_US","Sale edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1367","es_ES","Editar Venta - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1367","fr_FR","Édition d\'une promotion - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1368","de_DE","Sonderangebot Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1368","en_US","Sale edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1368","es_ES","Editar Venta - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1368","fr_FR","Édition d\'une promotion - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1369","de_DE","Variable Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1369","en_US","Variable edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1369","es_ES","Editar variable - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1369","fr_FR","Édition d\'une variable - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1370","de_DE","Variable Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1370","en_US","Variable edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1370","es_ES","Editar variable - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1370","fr_FR","Édition d\'une variable - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1371","de_DE","Template Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1371","en_US","Template edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1371","es_ES","Editar plantilla - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1371","fr_FR","Édition d\'un gabarit - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1372","de_DE","Template Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1372","en_US","Template edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1372","es_ES","Editar plantilla - parte inferior","",""); -INSERT INTO `hook_i18n` VALUES("1372","fr_FR","Édition d\'un gabarit - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1373","de_DE","Taxregel Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1373","en_US","Tax rule edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1373","es_ES","Edición de regla de impuesto - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1373","fr_FR","Édition d\'une règle de taxe - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1374","de_DE","Taxregel Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1374","en_US","Tax rule edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1374","es_ES","Editar regla de Impuesto - base","",""); -INSERT INTO `hook_i18n` VALUES("1374","fr_FR","Édition d\'une règle de taxe - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1375","de_DE","Taxe Bearbeitung - oben","",""); -INSERT INTO `hook_i18n` VALUES("1375","en_US","Tax edit - top","",""); -INSERT INTO `hook_i18n` VALUES("1375","es_ES","Editar Impuesto - parte superior","",""); -INSERT INTO `hook_i18n` VALUES("1375","fr_FR","Édition d\'une taxe - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1376","de_DE","Taxe Bearbeitung - unten","",""); -INSERT INTO `hook_i18n` VALUES("1376","en_US","Tax edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1376","es_ES","Editar Impuesto - base","",""); -INSERT INTO `hook_i18n` VALUES("1376","fr_FR","Édition d\'une taxe - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1377","de_DE","Bestellungs Bearbeitung - unter die Produktdaten","",""); -INSERT INTO `hook_i18n` VALUES("1377","en_US","Order edit - displayed after product information","",""); -INSERT INTO `hook_i18n` VALUES("1377","es_ES","Edición de Pedido - se muestra después de la información de producto","",""); -INSERT INTO `hook_i18n` VALUES("1377","fr_FR","Édition d\'une commande - sous les informations du produit","",""); -INSERT INTO `hook_i18n` VALUES("1378","de_DE","SEO Tab - oben","",""); -INSERT INTO `hook_i18n` VALUES("1378","en_US","Tab SEO - top","",""); -INSERT INTO `hook_i18n` VALUES("1378","es_ES","Ficha SEO - arriba","",""); -INSERT INTO `hook_i18n` VALUES("1378","fr_FR","Onglet SEO - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1379","de_DE","SEO Tab - unten","",""); -INSERT INTO `hook_i18n` VALUES("1379","en_US","Tab SEO - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1379","es_ES","Ficha SEO - abajo","",""); -INSERT INTO `hook_i18n` VALUES("1379","fr_FR","Onglet SEO - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1380","de_DE","Bild Tab - oben","",""); -INSERT INTO `hook_i18n` VALUES("1380","en_US","Tab image - top","",""); -INSERT INTO `hook_i18n` VALUES("1380","es_ES","Pestaña de imagen - arriba","",""); -INSERT INTO `hook_i18n` VALUES("1380","fr_FR","Onglet image - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1381","de_DE","Bild Tab - unten","",""); -INSERT INTO `hook_i18n` VALUES("1381","en_US","Tab image - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1381","es_ES","Pestaña de imagen - abajo","",""); -INSERT INTO `hook_i18n` VALUES("1381","fr_FR","Onglet image - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1382","de_DE","Dokument Tab - oben","",""); -INSERT INTO `hook_i18n` VALUES("1382","en_US","Tab document - top","",""); -INSERT INTO `hook_i18n` VALUES("1382","es_ES","Ficha de documento - arriba","",""); -INSERT INTO `hook_i18n` VALUES("1382","fr_FR","Onglet document - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1383","de_DE","Dokument Tab - unten","",""); -INSERT INTO `hook_i18n` VALUES("1383","en_US","Tab document - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1383","es_ES","Ficha de documento - abajo","",""); -INSERT INTO `hook_i18n` VALUES("1383","fr_FR","Onglet document - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1384","de_DE","Export modal or page - oben","",""); -INSERT INTO `hook_i18n` VALUES("1384","en_US","Export modal or page - top","",""); -INSERT INTO `hook_i18n` VALUES("1384","es_ES","Modal o página de exportación - superior","",""); -INSERT INTO `hook_i18n` VALUES("1384","fr_FR","Modal ou page d\'export - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1385","de_DE","Export modal or page - unten","",""); -INSERT INTO `hook_i18n` VALUES("1385","en_US","Export modal or page - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1385","es_ES","Modal o página de exportación - inferior","",""); -INSERT INTO `hook_i18n` VALUES("1385","fr_FR","Modal ou page d\'export - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1386","de_DE","Bestellung - Kunde Informationen unten","",""); -INSERT INTO `hook_i18n` VALUES("1386","en_US","Order - customer information bottom","",""); -INSERT INTO `hook_i18n` VALUES("1386","es_ES","Orden - parte inferior de información del cliente","",""); -INSERT INTO `hook_i18n` VALUES("1386","fr_FR","Commande - en bas des informations client","",""); -INSERT INTO `hook_i18n` VALUES("1387","de_DE","Bestellung - Zahlungsmodul unten","",""); -INSERT INTO `hook_i18n` VALUES("1387","en_US","Order - payment module bottom","",""); -INSERT INTO `hook_i18n` VALUES("1387","es_ES","Orden - parte inferior del módulo de pago","",""); -INSERT INTO `hook_i18n` VALUES("1387","fr_FR","Commande - en bas du module de paiement","",""); -INSERT INTO `hook_i18n` VALUES("1388","de_DE","Bestellung - Liefermodul unten","",""); -INSERT INTO `hook_i18n` VALUES("1388","en_US","Order - delivery module bottom","",""); -INSERT INTO `hook_i18n` VALUES("1388","es_ES","Orden - parte inferior del módulo de entrega","",""); -INSERT INTO `hook_i18n` VALUES("1388","fr_FR","Commande - en bas du module de livraison","",""); -INSERT INTO `hook_i18n` VALUES("1389","de_DE","Registerkarte SEO - Update-Formular","",""); -INSERT INTO `hook_i18n` VALUES("1389","en_US","Tab SEO - update form","",""); -INSERT INTO `hook_i18n` VALUES("1389","es_ES","Ficha SEO - formato de actualización","",""); -INSERT INTO `hook_i18n` VALUES("1389","fr_FR","Onglet SEO - formulaire de mise à jour","",""); -INSERT INTO `hook_i18n` VALUES("1390","de_DE","Bestellung bearbeiten - Produkttabelle Header","",""); -INSERT INTO `hook_i18n` VALUES("1390","en_US","Order edit - order product table header","",""); -INSERT INTO `hook_i18n` VALUES("1390","es_ES","Edición de Pedido - encabezado de la tabla de pedido de producto","",""); -INSERT INTO `hook_i18n` VALUES("1390","fr_FR","Modification commande - en-tête des produits","",""); -INSERT INTO `hook_i18n` VALUES("1391","de_DE","Bestellung bearbeiten - Produkttabelle Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1391","en_US","Order edit - order product table row","",""); -INSERT INTO `hook_i18n` VALUES("1391","es_ES","Edición de Pedido - fila de la tabla del pedido de producto","",""); -INSERT INTO `hook_i18n` VALUES("1391","fr_FR","Modification commande - ligne du tableau des produits","",""); -INSERT INTO `hook_i18n` VALUES("1392","de_DE","Administratoren - Header","",""); -INSERT INTO `hook_i18n` VALUES("1392","en_US","Administrators - header","",""); -INSERT INTO `hook_i18n` VALUES("1392","es_ES","Administradores - cabecera","",""); -INSERT INTO `hook_i18n` VALUES("1392","fr_FR","Administrateurs - en-tête","",""); -INSERT INTO `hook_i18n` VALUES("1393","de_DE","Administratoren - Zeile","",""); -INSERT INTO `hook_i18n` VALUES("1393","en_US","Administrators - row","",""); -INSERT INTO `hook_i18n` VALUES("1393","es_ES","Administradores - fila","",""); -INSERT INTO `hook_i18n` VALUES("1393","fr_FR","Administrateurs - ligne","",""); -INSERT INTO `hook_i18n` VALUES("1394","de_DE","Erweiterte Konfiguration","",""); -INSERT INTO `hook_i18n` VALUES("1394","en_US","Advanced Configuration","",""); -INSERT INTO `hook_i18n` VALUES("1394","es_ES","Configuración avanzada","",""); -INSERT INTO `hook_i18n` VALUES("1394","fr_FR","Configuration avancée","",""); -INSERT INTO `hook_i18n` VALUES("1395","de_DE","Erweiterte Konfiguration - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1395","en_US","Advanced Configuration - Javascript","",""); -INSERT INTO `hook_i18n` VALUES("1395","es_ES","Configuración avanzada - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1395","fr_FR","Configuration avancée - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1396","de_DE","Marke bearbeiten - Rechte Spalte oben","",""); -INSERT INTO `hook_i18n` VALUES("1396","en_US","Brand edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1396","es_ES","Edición de marca - encabezado de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1396","fr_FR","Édition d\'une marque - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1397","de_DE","Marke bearbeiten - Rechte Spalte unten","",""); -INSERT INTO `hook_i18n` VALUES("1397","en_US","Brand edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1397","es_ES","Edición de marca - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1397","fr_FR","Édition d\'une marque - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1398","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1398","en_US","Category edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1398","es_ES","Edición de categoría - al tope de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1398","fr_FR","Édition d\'une catégorie - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1399","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1399","en_US","Category edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1399","es_ES","Edición de categoría - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1399","fr_FR","Édition d\'une catégorie - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1400","de_DE","Inhalt bearbeiten - Rechte Spalte oben","",""); -INSERT INTO `hook_i18n` VALUES("1400","en_US","Content edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1400","es_ES","Edición de Contenido - al tope de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1400","fr_FR","Édition d\'un contenu - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1401","de_DE","Inhalt bearbeiten - Rechte Spalte unten","",""); -INSERT INTO `hook_i18n` VALUES("1401","en_US","Content edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1401","es_ES","Edición de Contenido - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1401","fr_FR","Édition d\'un contenu - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1402","de_DE","Ordner bearbeiten - Rechte Spalte oben","",""); -INSERT INTO `hook_i18n` VALUES("1402","en_US","Folder edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1402","es_ES","Edición de carpeta - al tope de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1402","fr_FR","Édition d\'un dossier - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1403","de_DE","Ordner bearbeiten - Rechte Spalte unten","",""); -INSERT INTO `hook_i18n` VALUES("1403","en_US","Folder edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1403","es_ES","Edición de carpeta - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1403","fr_FR","Édition d\'un dossier - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1404","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1404","en_US","Product edit - right column top","",""); -INSERT INTO `hook_i18n` VALUES("1404","es_ES","Edición de producto - encabezado de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1404","fr_FR","Édition d\'un produit - en haut de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1405","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1405","en_US","Product edit - right column bottom","",""); -INSERT INTO `hook_i18n` VALUES("1405","es_ES","Edición de producto - al pie de la columna derecha","",""); -INSERT INTO `hook_i18n` VALUES("1405","fr_FR","Édition d\'un produit - en bas de la colonne de droite","",""); -INSERT INTO `hook_i18n` VALUES("1406","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1406","en_US","state-edit - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1406","es_ES","estado - editar - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1406","fr_FR","édition d\'un état - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1407","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1407","en_US","state-edit - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1407","es_ES","estado - al pie","",""); -INSERT INTO `hook_i18n` VALUES("1407","fr_FR","édition d\'un état - en bas","",""); -INSERT INTO `hook_i18n` VALUES("1408","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1408","en_US","state - Edit JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1408","es_ES","estado - Editar JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1408","fr_FR","Etat - JavaScript modification","",""); -INSERT INTO `hook_i18n` VALUES("1409","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1409","en_US","states - at the top","",""); -INSERT INTO `hook_i18n` VALUES("1409","es_ES","estados - encabezado","",""); -INSERT INTO `hook_i18n` VALUES("1409","fr_FR","états - en haut","",""); -INSERT INTO `hook_i18n` VALUES("1410","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1410","en_US","states - table header","",""); -INSERT INTO `hook_i18n` VALUES("1410","es_ES","estados - encabezado de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1410","fr_FR","états - colonne tableau","",""); -INSERT INTO `hook_i18n` VALUES("1411","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1411","en_US","states - table row","",""); -INSERT INTO `hook_i18n` VALUES("1411","es_ES","estados - fila de tabla","",""); -INSERT INTO `hook_i18n` VALUES("1411","fr_FR","états - ligne du tableau","",""); -INSERT INTO `hook_i18n` VALUES("1412","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1412","en_US","states - bottom","",""); -INSERT INTO `hook_i18n` VALUES("1412","es_ES","estados - al pie","",""); -INSERT INTO `hook_i18n` VALUES("1412","fr_FR","états - bas","",""); -INSERT INTO `hook_i18n` VALUES("1413","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1413","en_US","state - creation form","",""); -INSERT INTO `hook_i18n` VALUES("1413","es_ES","estado - formulario de creación","",""); -INSERT INTO `hook_i18n` VALUES("1413","fr_FR","état - formulaire de création","",""); -INSERT INTO `hook_i18n` VALUES("1414","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1414","en_US","state - delete form","",""); -INSERT INTO `hook_i18n` VALUES("1414","es_ES","estado - formulario de borrado","",""); -INSERT INTO `hook_i18n` VALUES("1414","fr_FR","état - formulaire de suppression","",""); -INSERT INTO `hook_i18n` VALUES("1415","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("1415","en_US","states - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1415","es_ES","estados - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("1415","fr_FR","états - JavaScript","",""); -INSERT INTO `hook_i18n` VALUES("2001","de_DE","Rechnung - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2001","en_US","Invoice - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2001","es_ES","Factura - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2001","fr_FR","Facture - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2002","de_DE","Rechnung - im Header","",""); -INSERT INTO `hook_i18n` VALUES("2002","en_US","Invoice - in the header","",""); -INSERT INTO `hook_i18n` VALUES("2002","es_ES","Factura - en la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("2002","fr_FR","Facture - dans l\'en-tête","",""); -INSERT INTO `hook_i18n` VALUES("2003","de_DE","Rechnung - oben an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("2003","en_US","Invoice - at the top of the footer","",""); -INSERT INTO `hook_i18n` VALUES("2003","es_ES","Factura - en la parte superior del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("2003","fr_FR","Facture - en haut du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("2004","de_DE","Rechnung - Impressum","",""); -INSERT INTO `hook_i18n` VALUES("2004","en_US","Invoice - imprint","",""); -INSERT INTO `hook_i18n` VALUES("2004","es_ES","Factura - pie de imprenta","",""); -INSERT INTO `hook_i18n` VALUES("2004","fr_FR","Facture - mentions légales","",""); -INSERT INTO `hook_i18n` VALUES("2005","de_DE","Rechnung - unten an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("2005","en_US","Invoice - at the bottom of the footer","",""); -INSERT INTO `hook_i18n` VALUES("2005","es_ES","Factura - en la parte inferior del pie de página","",""); -INSERT INTO `hook_i18n` VALUES("2005","fr_FR","Facture - en bas du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("2006","de_DE","Rechnung - unten an dem Informationsbereich","",""); -INSERT INTO `hook_i18n` VALUES("2006","en_US","Invoice - at the bottom of information area","",""); -INSERT INTO `hook_i18n` VALUES("2006","es_ES","Factura - en la parte inferior del área de la información","",""); -INSERT INTO `hook_i18n` VALUES("2006","fr_FR","Facture - en bas de la zone d\'informations","",""); -INSERT INTO `hook_i18n` VALUES("2007","de_DE","Rechnung - nach dem Informationsbereich","",""); -INSERT INTO `hook_i18n` VALUES("2007","en_US","Invoice - after the information area","",""); -INSERT INTO `hook_i18n` VALUES("2007","es_ES","Factura - después del área de información","",""); -INSERT INTO `hook_i18n` VALUES("2007","fr_FR","Facture - après la zone d\'informations","",""); -INSERT INTO `hook_i18n` VALUES("2008","de_DE","Rechnung - Bestellungsadresse","",""); -INSERT INTO `hook_i18n` VALUES("2008","en_US","Invoice - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("2008","es_ES","Factura - dirección de envío","",""); -INSERT INTO `hook_i18n` VALUES("2008","fr_FR","Facture - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("2009","de_DE","Rechnung - nach dem Adressebereich","",""); -INSERT INTO `hook_i18n` VALUES("2009","en_US","Invoice - after addresse area","",""); -INSERT INTO `hook_i18n` VALUES("2009","es_ES","Factura - después del área de dirección","",""); -INSERT INTO `hook_i18n` VALUES("2009","fr_FR","Facture - après la zone d\'adresses","",""); -INSERT INTO `hook_i18n` VALUES("2010","de_DE","Rechnung - nach der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("2010","en_US","Invoice - after product listing","",""); -INSERT INTO `hook_i18n` VALUES("2010","es_ES","Factura - después de listado de productos","",""); -INSERT INTO `hook_i18n` VALUES("2010","fr_FR","Facture - après la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("2011","de_DE","Rechnung - nach der Bestellungs-Zusammenfassung","",""); -INSERT INTO `hook_i18n` VALUES("2011","en_US","Invoice - after the order summary","",""); -INSERT INTO `hook_i18n` VALUES("2011","es_ES","Factura - después del resumen de la orden","",""); -INSERT INTO `hook_i18n` VALUES("2011","fr_FR","Facture - après le résumé de la commande","",""); -INSERT INTO `hook_i18n` VALUES("2012","de_DE","Lieferung - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2012","en_US","Delivery - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2012","es_ES","Entrega - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2012","fr_FR","Bon de livraison - CSS","",""); -INSERT INTO `hook_i18n` VALUES("2013","de_DE","Lieferung - im Header","",""); -INSERT INTO `hook_i18n` VALUES("2013","en_US","Delivery - in the header","",""); -INSERT INTO `hook_i18n` VALUES("2013","es_ES","Envío - en la cabecera","",""); -INSERT INTO `hook_i18n` VALUES("2013","fr_FR","Bon de livraison - dans l\'en-tête","",""); -INSERT INTO `hook_i18n` VALUES("2014","de_DE","Lieferung - oben an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("2014","en_US","Delivery - at the top of the footer","",""); -INSERT INTO `hook_i18n` VALUES("2014","es_ES","Envío - en la parte superior del footer","",""); -INSERT INTO `hook_i18n` VALUES("2014","fr_FR","Bon de livraison - en haut du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("2015","de_DE","Lieferung - Impressum","",""); -INSERT INTO `hook_i18n` VALUES("2015","en_US","Delivery - imprint","",""); -INSERT INTO `hook_i18n` VALUES("2015","es_ES","Envío - imprimir","",""); -INSERT INTO `hook_i18n` VALUES("2015","fr_FR","Bon de livraison - mentions légales","",""); -INSERT INTO `hook_i18n` VALUES("2016","de_DE","Lieferung - unten an dem Footer","",""); -INSERT INTO `hook_i18n` VALUES("2016","en_US","Delivery - at the bottom of the footer","",""); -INSERT INTO `hook_i18n` VALUES("2016","es_ES","Envío - En el pie del footer","",""); -INSERT INTO `hook_i18n` VALUES("2016","fr_FR","Bon de livraison - en bas du pied de page","",""); -INSERT INTO `hook_i18n` VALUES("2017","de_DE","Lieferung - unten an dem Informationsbereich","",""); -INSERT INTO `hook_i18n` VALUES("2017","en_US","Delivery - at the bottom of information area","",""); -INSERT INTO `hook_i18n` VALUES("2017","es_ES","Envío - en el pié del área de información","",""); -INSERT INTO `hook_i18n` VALUES("2017","fr_FR","Bon de livraison - en bas de la zone d\'informations","",""); -INSERT INTO `hook_i18n` VALUES("2018","de_DE","Lieferung - Nach dem Informationsbereich","",""); -INSERT INTO `hook_i18n` VALUES("2018","en_US","Delivery - after the information area","",""); -INSERT INTO `hook_i18n` VALUES("2018","es_ES","Entrega - después del área de información","",""); -INSERT INTO `hook_i18n` VALUES("2018","fr_FR","Bon de livraison - après la zone d\'informations","",""); -INSERT INTO `hook_i18n` VALUES("2019","de_DE","Lieferung - Lieferadresse","",""); -INSERT INTO `hook_i18n` VALUES("2019","en_US","Delivery - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("2019","es_ES","Envío - dirección de entrega","",""); -INSERT INTO `hook_i18n` VALUES("2019","fr_FR","Bon de livraison - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("2020","de_DE","Lieferung - Nach dem Adresse-Bereich","",""); -INSERT INTO `hook_i18n` VALUES("2020","en_US","Delivery - after addresse area","",""); -INSERT INTO `hook_i18n` VALUES("2020","es_ES","Entrega - tras el área de dirección","",""); -INSERT INTO `hook_i18n` VALUES("2020","fr_FR","Bon de livraison - après la zone d\'adresses","",""); -INSERT INTO `hook_i18n` VALUES("2021","de_DE","Lieferung - Nach der Zusammenfassung der Bestellung","",""); -INSERT INTO `hook_i18n` VALUES("2021","en_US","Delivery - after the order summary","",""); -INSERT INTO `hook_i18n` VALUES("2021","es_ES","Envío - después del resumen de pedido","",""); -INSERT INTO `hook_i18n` VALUES("2021","fr_FR","Bon de livraison - après le résumé de la commande","",""); -INSERT INTO `hook_i18n` VALUES("2022","de_DE","Bestellbestätigung - nach den Bestellungszusammenfassungen","",""); -INSERT INTO `hook_i18n` VALUES("2022","en_US","Order confirmation - after the order summary","",""); -INSERT INTO `hook_i18n` VALUES("2022","es_ES","Confirmación de la orden - después del Resumen de la orden","",""); -INSERT INTO `hook_i18n` VALUES("2022","fr_FR","Confirmation de commande - après les récapitulatif de commande","",""); -INSERT INTO `hook_i18n` VALUES("2023","de_DE","Überall wo WYSIWYG editor ist nötig","",""); -INSERT INTO `hook_i18n` VALUES("2023","en_US","Where the WYSIWYG editor is required","",""); -INSERT INTO `hook_i18n` VALUES("2023","es_ES","Donde se requiere el editor WYSIWYG","",""); -INSERT INTO `hook_i18n` VALUES("2023","fr_FR","Partout ou l\'éditeur WYSIWYG est nécessaire","",""); -INSERT INTO `hook_i18n` VALUES("2024","de_DE","Bestellung - Warenkorb oben","",""); -INSERT INTO `hook_i18n` VALUES("2024","en_US","Order - cart top","",""); -INSERT INTO `hook_i18n` VALUES("2024","es_ES","Orden - parte superior del carro","",""); -INSERT INTO `hook_i18n` VALUES("2024","fr_FR","Commande - panier haut","",""); -INSERT INTO `hook_i18n` VALUES("2025","de_DE","Bestellung - Warenkorb unten","",""); -INSERT INTO `hook_i18n` VALUES("2025","en_US","Order - cart bottom","",""); -INSERT INTO `hook_i18n` VALUES("2025","es_ES","Orden - parte inferior del carro","",""); -INSERT INTO `hook_i18n` VALUES("2025","fr_FR","Commande - panier bas","",""); -INSERT INTO `hook_i18n` VALUES("2026","de_DE","Bestellung - Rechnung oben","",""); -INSERT INTO `hook_i18n` VALUES("2026","en_US","Order - bill top","",""); -INSERT INTO `hook_i18n` VALUES("2026","es_ES","Orden - parte superior de la cuenta","",""); -INSERT INTO `hook_i18n` VALUES("2026","fr_FR","Commande - facture haut","",""); -INSERT INTO `hook_i18n` VALUES("2027","de_DE","Bestellung - Rechnung unten","",""); -INSERT INTO `hook_i18n` VALUES("2027","en_US","Order - bill bottom","",""); -INSERT INTO `hook_i18n` VALUES("2027","es_ES","Orden - parte inferior de la cuenta","",""); -INSERT INTO `hook_i18n` VALUES("2027","fr_FR","Commande - facture bas","",""); -INSERT INTO `hook_i18n` VALUES("2028","de_DE","Bestellung - Vor der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("2028","en_US","Order - Before product list","",""); -INSERT INTO `hook_i18n` VALUES("2028","es_ES","Orden - antes de la lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("2028","fr_FR","Commande - Avant la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("2029","de_DE","Bestellung - Vor der Öffnung der Produktzeile","",""); -INSERT INTO `hook_i18n` VALUES("2029","en_US","Order - Before starting product row","",""); -INSERT INTO `hook_i18n` VALUES("2029","es_ES","Orden - antes de comenzar la fila de producto","",""); -INSERT INTO `hook_i18n` VALUES("2029","fr_FR","Commande - Avant d\'ouvrir la ligne produit","",""); -INSERT INTO `hook_i18n` VALUES("2030","de_DE","Bestellung - Nach Sperrung der Produkt Zeile","",""); -INSERT INTO `hook_i18n` VALUES("2030","en_US","Order - After closing product row","",""); -INSERT INTO `hook_i18n` VALUES("2030","es_ES","Orden - después de cerrar la fila de producto","",""); -INSERT INTO `hook_i18n` VALUES("2030","fr_FR","Commande - Après avoir fermé la ligne produit","",""); -INSERT INTO `hook_i18n` VALUES("2031","de_DE","Bestellung - Nach der Produktliste","",""); -INSERT INTO `hook_i18n` VALUES("2031","en_US","Order - After product list","",""); -INSERT INTO `hook_i18n` VALUES("2031","es_ES","Orden - después de la lista de productos","",""); -INSERT INTO `hook_i18n` VALUES("2031","fr_FR","Commande - Après la liste des produits","",""); -INSERT INTO `hook_i18n` VALUES("2032","de_DE","Rechnung - Nach dem Zahlungsmodul","",""); -INSERT INTO `hook_i18n` VALUES("2032","en_US","Invoice - After payment module","",""); -INSERT INTO `hook_i18n` VALUES("2032","es_ES","Factura - Después de módulo de pago de factura","",""); -INSERT INTO `hook_i18n` VALUES("2032","fr_FR","Commande - après le module de paiement","",""); -INSERT INTO `hook_i18n` VALUES("2033","de_DE","Rechnung - Nach dem Liefermodul","",""); -INSERT INTO `hook_i18n` VALUES("2033","en_US","Invoice - After delivery module","",""); -INSERT INTO `hook_i18n` VALUES("2033","es_ES","Factura - Después de módulo de entrega de factura","",""); -INSERT INTO `hook_i18n` VALUES("2033","fr_FR","Commande - après le module de livraison","",""); -INSERT INTO `hook_i18n` VALUES("2034","de_DE","Lieferung - Nach dem Liefermodul","",""); -INSERT INTO `hook_i18n` VALUES("2034","en_US","Delivery - After delivery module","",""); -INSERT INTO `hook_i18n` VALUES("2034","es_ES","Entrega - después del módulo de entrega","",""); -INSERT INTO `hook_i18n` VALUES("2034","fr_FR","Commande - après le module de livraison","",""); -INSERT INTO `hook_i18n` VALUES("2035","de_DE","Rechnung - Weitere Produktinformationen","",""); -INSERT INTO `hook_i18n` VALUES("2035","en_US","Invoice - additional product information","",""); -INSERT INTO `hook_i18n` VALUES("2035","es_ES","Factura - información adicional del producto","",""); -INSERT INTO `hook_i18n` VALUES("2035","fr_FR","Facture - informations additionnelles pour un produit","",""); -INSERT INTO `hook_i18n` VALUES("2036","de_DE","Lieferung - Weitere Produktinformationen","",""); -INSERT INTO `hook_i18n` VALUES("2036","en_US","Delivery - additional product information","",""); -INSERT INTO `hook_i18n` VALUES("2036","es_ES","Entrega - información adicional del producto","",""); -INSERT INTO `hook_i18n` VALUES("2036","fr_FR","Bon de livraison - informations additionnelles pour un produit","",""); -INSERT INTO `hook_i18n` VALUES("3000","de_DE","E-Mail html - Layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("3000","en_US","Email html - layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("3000","es_ES","Email HTML - Interfaz - CSS","",""); -INSERT INTO `hook_i18n` VALUES("3000","fr_FR","Email html - layout - CSS","",""); -INSERT INTO `hook_i18n` VALUES("3001","de_DE","E-Mail html - Layout - Fußzeile","",""); -INSERT INTO `hook_i18n` VALUES("3001","en_US","Email html - layout - footer","",""); -INSERT INTO `hook_i18n` VALUES("3001","es_ES","Email HTML - Interfaz - pie","",""); -INSERT INTO `hook_i18n` VALUES("3001","fr_FR","Email html - layout - pied de page","",""); -INSERT INTO `hook_i18n` VALUES("3002","de_DE","E-Mail html - Bestellbestätigung - vor Adresse","",""); -INSERT INTO `hook_i18n` VALUES("3002","en_US","Email html - order confirmation - before address","",""); -INSERT INTO `hook_i18n` VALUES("3002","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3002","fr_FR","Email html - confirmation commande - avant adresses","",""); -INSERT INTO `hook_i18n` VALUES("3003","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3003","en_US","Email html - order confirmation - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("3003","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3003","fr_FR","Email html - confirmation commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3004","de_DE","E-Mail html - Bestellbestätigung - nach Adresse","",""); -INSERT INTO `hook_i18n` VALUES("3004","en_US","Email html - order confirmation - after address","",""); -INSERT INTO `hook_i18n` VALUES("3004","es_ES","Email HTML - confirmación de orden - después de la dirección","",""); -INSERT INTO `hook_i18n` VALUES("3004","fr_FR","Email html - confirmation commande - après adresses","",""); -INSERT INTO `hook_i18n` VALUES("3005","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3005","en_US","Email html - order confirmation - order product","",""); -INSERT INTO `hook_i18n` VALUES("3005","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3005","fr_FR","Email html - confirmation commande - produit de la commande","",""); -INSERT INTO `hook_i18n` VALUES("3006","de_DE","E-Mail html - Bestellbestätigung - vor Produkten","",""); -INSERT INTO `hook_i18n` VALUES("3006","en_US","Email html - order confirmation - before products","",""); -INSERT INTO `hook_i18n` VALUES("3006","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3006","fr_FR","Email html - confirmation commande - avant produits","",""); -INSERT INTO `hook_i18n` VALUES("3007","de_DE","E-Mail html - Bestellbestätigung - nach Produkten","",""); -INSERT INTO `hook_i18n` VALUES("3007","en_US","Email html - order confirmation - after products","",""); -INSERT INTO `hook_i18n` VALUES("3007","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3007","fr_FR","Email html - confirmation commande - après produits","",""); -INSERT INTO `hook_i18n` VALUES("3008","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3008","en_US","Email html - order confirmation - footer","",""); -INSERT INTO `hook_i18n` VALUES("3008","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3008","fr_FR","Email html - confirmation commande - pied de page","",""); -INSERT INTO `hook_i18n` VALUES("3009","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3009","en_US","Email html - order notification - before address","",""); -INSERT INTO `hook_i18n` VALUES("3009","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3009","fr_FR","Email html - notification commande - avant adresses","",""); -INSERT INTO `hook_i18n` VALUES("3010","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3010","en_US","Email html - order notification - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("3010","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3010","fr_FR","Email html - notification commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3011","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3011","en_US","Email html - order notification - after address","",""); -INSERT INTO `hook_i18n` VALUES("3011","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3011","fr_FR","Email html - notification commande - après adresses","",""); -INSERT INTO `hook_i18n` VALUES("3012","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3012","en_US","Email html - order notification - order product","",""); -INSERT INTO `hook_i18n` VALUES("3012","es_ES","Email HTML - notificación de orden - pedir producto","",""); -INSERT INTO `hook_i18n` VALUES("3012","fr_FR","Email html - notification commande - produit de la commande","",""); -INSERT INTO `hook_i18n` VALUES("3013","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3013","en_US","Email html - order notification - before products","",""); -INSERT INTO `hook_i18n` VALUES("3013","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3013","fr_FR","Email html - notification commande - avant produits","",""); -INSERT INTO `hook_i18n` VALUES("3014","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3014","en_US","Email html - order notification - after products","",""); -INSERT INTO `hook_i18n` VALUES("3014","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3014","fr_FR","Email html - notification commande - après produits","",""); -INSERT INTO `hook_i18n` VALUES("3015","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3015","en_US","Email txt - order confirmation - before address","",""); -INSERT INTO `hook_i18n` VALUES("3015","es_ES","Email texto - confirmación de pedido - antes de la dirección","",""); -INSERT INTO `hook_i18n` VALUES("3015","fr_FR","Email txt - confirmation commande - avant adresses","",""); -INSERT INTO `hook_i18n` VALUES("3016","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3016","en_US","Email txt - order confirmation - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("3016","es_ES","Email texto - confirmación de pedido - dirección de entrega","",""); -INSERT INTO `hook_i18n` VALUES("3016","fr_FR","Email txt - confirmation commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3017","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3017","en_US","Email txt - order confirmation - after address","",""); -INSERT INTO `hook_i18n` VALUES("3017","es_ES","Email texto - confirmación de pedido - después de la dirección","",""); -INSERT INTO `hook_i18n` VALUES("3017","fr_FR","Email txt - confirmation commande - après adresses","",""); -INSERT INTO `hook_i18n` VALUES("3018","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3018","en_US","Email txt - order confirmation - order product","",""); -INSERT INTO `hook_i18n` VALUES("3018","es_ES","Email texto - confirmación de pedido - pedido de producto","",""); -INSERT INTO `hook_i18n` VALUES("3018","fr_FR","Email txt - confirmation commande - produit de la commande","",""); -INSERT INTO `hook_i18n` VALUES("3019","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3019","en_US","Email txt - order confirmation - before products","",""); -INSERT INTO `hook_i18n` VALUES("3019","es_ES","Email texto - confirmación de pedido - antes de los productos","",""); -INSERT INTO `hook_i18n` VALUES("3019","fr_FR","Email txt - confirmation commande - avant produits","",""); -INSERT INTO `hook_i18n` VALUES("3020","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3020","en_US","Email txt - order confirmation - after products","",""); -INSERT INTO `hook_i18n` VALUES("3020","es_ES","Email texto - confirmación de pedido - después de los productos","",""); -INSERT INTO `hook_i18n` VALUES("3020","fr_FR","Email txt - confirmation commande - après produits","",""); -INSERT INTO `hook_i18n` VALUES("3021","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3021","en_US","Email txt - order notification - before address","",""); -INSERT INTO `hook_i18n` VALUES("3021","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3021","fr_FR","Email txt - notification commande - avant adresses","",""); -INSERT INTO `hook_i18n` VALUES("3022","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3022","en_US","Email txt - order notification - delivery address","",""); -INSERT INTO `hook_i18n` VALUES("3022","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3022","fr_FR","Email txt - notification commande - adresse de livraison","",""); -INSERT INTO `hook_i18n` VALUES("3023","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3023","en_US","Email txt - order notification - after address","",""); -INSERT INTO `hook_i18n` VALUES("3023","es_ES","Email texto - notificación de pedido - después de la dirección","",""); -INSERT INTO `hook_i18n` VALUES("3023","fr_FR","Email txt - notification commande - après adresses","",""); -INSERT INTO `hook_i18n` VALUES("3024","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3024","en_US","Email txt - order notification - order product","",""); -INSERT INTO `hook_i18n` VALUES("3024","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3024","fr_FR","Email txt - notification commande - produit de la commande","",""); -INSERT INTO `hook_i18n` VALUES("3025","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3025","en_US","Email txt - order notification - before products","",""); -INSERT INTO `hook_i18n` VALUES("3025","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3025","fr_FR","Email txt - notification commande - avant produits","",""); -INSERT INTO `hook_i18n` VALUES("3026","de_DE","","",""); -INSERT INTO `hook_i18n` VALUES("3026","en_US","Email txt - order notification - after products","",""); -INSERT INTO `hook_i18n` VALUES("3026","es_ES","","",""); -INSERT INTO `hook_i18n` VALUES("3026","fr_FR","Email txt - notification commande - après produits","",""); - - - -DROP TABLE `icirelais_freeshipping`; - -CREATE TABLE `icirelais_freeshipping` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `active` tinyint(1) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `icirelais_freeshipping` VALUES("1","0","2017-03-02 15:50:05","2017-03-02 15:50:05"); - - - -DROP TABLE `ignored_module_hook`; - -CREATE TABLE `ignored_module_hook` ( - `module_id` int(11) NOT NULL, - `hook_id` int(11) NOT NULL, - `method` varchar(255) DEFAULT NULL, - `classname` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`module_id`,`hook_id`), - KEY `fk_deleted_module_hook_module_id_idx` (`module_id`), - KEY `fk_deleted_module_hook_hook_id_idx` (`hook_id`), - CONSTRAINT `fk_deleted_module_hook_hook_id` FOREIGN KEY (`hook_id`) REFERENCES `hook` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_deleted_module_hook_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `import`; - -CREATE TABLE `import` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) NOT NULL, - `position` int(11) NOT NULL, - `import_category_id` int(11) NOT NULL, - `handle_class` longtext NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `fk_export_1_idx` (`import_category_id`), - CONSTRAINT `fk_import_import_category_id` FOREIGN KEY (`import_category_id`) REFERENCES `import_category` (`id`) ON UPDATE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `import` VALUES("1","thelia.import.stock","1","1","Thelia\\ImportExport\\Import\\Type\\ProductStockImport","2017-02-28 18:21:40","2017-02-28 18:21:40"); -INSERT INTO `import` VALUES("2","thelia.import.price","2","1","Thelia\\ImportExport\\Import\\Type\\ProductPricesImport","2017-02-28 18:21:40","2017-02-28 18:21:40"); - - - -DROP TABLE `import_category`; - -CREATE TABLE `import_category` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(255) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `import_category` VALUES("1","thelia.import.products","1","2017-02-28 18:21:39","2017-02-28 18:21:40"); -INSERT INTO `import_category` VALUES("2","thelia.import.modules","2","2017-02-28 18:21:40","2017-02-28 18:21:40"); - - - -DROP TABLE `import_category_i18n`; - -CREATE TABLE `import_category_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `import_category_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `import_category` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `import_category_i18n` VALUES("1","en_US","Products"); -INSERT INTO `import_category_i18n` VALUES("1","fr_FR","Produits"); -INSERT INTO `import_category_i18n` VALUES("2","en_US","Modules"); -INSERT INTO `import_category_i18n` VALUES("2","fr_FR","Modules"); - - - -DROP TABLE `import_i18n`; - -CREATE TABLE `import_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `import_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `import` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `import_i18n` VALUES("1","en_US","Import your stock","\n \n Your file must have the following columns to work:\n
    \n
  • id: The id of your product sale elements
  • \n
  • stock: The quantity of product you have
  • \n
\n It can have the column \"ean\" that defines the product\'s EAN code.\n \n "); -INSERT INTO `import_i18n` VALUES("1","fr_FR","Importer votre stock","\n \n Votre fichier doit avoir les colonnes suivantes :\n
    \n
  • id: L\'id de la déclinaison de produit
  • \n
  • stock: La quantité de la déclinaison
  • \n
\n \n "); -INSERT INTO `import_i18n` VALUES("2","en_US","Import your prices excluding taxes","\n \n Your file must have the following columns:\n
    \n
  • id: The id of your product sale elements
  • \n
  • price: The price excluding taxes of the product attribute combinations
  • \n
\n It may also optionally have those columns:\n
    \n
  • currency: the currency code (example: EUR, USD)
  • \n
  • promo_price: the promo price excluding taxes of the product attribute combinations
  • \n
  • promo: If this value is 0, set the product not in promo, if 1, it sets the product in promo
  • \n
\n \n "); -INSERT INTO `import_i18n` VALUES("2","fr_FR","Importer vos prix Hors-Taxes","\n \n Votre fichier doit avoir les colonnes suivantes:\n
    \n
  • id: L\'id de la déclinaison de produit
  • \n
  • price: Le prix Hors-Taxes de votre déclinaison de combinaison de produit
  • \n
\n Il peut aussi optionnellement avoir ces colonnes:\n
    \n
  • currency: Le code de la monnaie (exemple: EUR, USD)
  • \n
  • promo_price: Le prix promotionnel Hors-Taxes de votre déclinaison de combinaison de produit
  • \n
  • promo: Si cette valeur est a 0, désactive la promotion, si elle est a 1, l\'active
  • \n
\n \n "); - - - -DROP TABLE `lang`; - -CREATE TABLE `lang` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `title` varchar(100) DEFAULT NULL, - `code` varchar(10) DEFAULT NULL, - `locale` varchar(45) DEFAULT NULL, - `url` varchar(255) DEFAULT NULL, - `date_format` varchar(45) DEFAULT NULL, - `time_format` varchar(45) DEFAULT NULL, - `datetime_format` varchar(45) DEFAULT NULL, - `decimal_separator` varchar(45) DEFAULT NULL, - `thousands_separator` varchar(45) DEFAULT NULL, - `active` tinyint(1) DEFAULT '0', - `visible` tinyint(4) DEFAULT '0', - `decimals` varchar(45) DEFAULT NULL, - `by_default` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_lang_by_default` (`by_default`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; - -INSERT INTO `lang` VALUES("1","Français","fr","fr_FR","","d/m/Y","H:i:s","d/m/Y H:i:s",","," ","1","1","2","1","","2017-02-28 18:20:10","2017-06-04 10:05:21"); -INSERT INTO `lang` VALUES("2","English","en","en_US","","m-d-Y","h:i:s","m-d-Y h:i:s","."," ","0","0","2","0","","2017-02-28 18:20:10","2017-06-04 10:05:36"); -INSERT INTO `lang` VALUES("3","Castellano","es","es_ES","","m-d-Y","h:i:s","m-d-Y h:i:s",",",".","0","0","2","0","","2017-02-28 18:20:10","2017-06-15 13:50:12"); -INSERT INTO `lang` VALUES("7","Deutsch","de","de_DE","","d-m-Y","H:i:s","d-m-Y H:i:s",",",".","0","0","2","0","","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `local_pickup_shipping`; - -CREATE TABLE `local_pickup_shipping` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `price` double NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `local_pickup_shipping` VALUES("1","0","2017-03-02 15:49:52","2017-03-02 15:49:52"); - - - -DROP TABLE `message`; - -CREATE TABLE `message` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `name` varchar(255) NOT NULL, - `secured` tinyint(4) DEFAULT NULL, - `text_layout_file_name` varchar(255) DEFAULT NULL, - `text_template_file_name` varchar(255) DEFAULT NULL, - `html_layout_file_name` varchar(255) DEFAULT NULL, - `html_template_file_name` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; - -INSERT INTO `message` VALUES("1","order_confirmation","","","order_confirmation.txt","","order_confirmation.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("2","lost_password","","","password.txt","","password.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("3","order_notification","","","order_notification.txt","","order_notification.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("4","customer_account_changed","0","","account_changed_by_admin.txt","","account_changed_by_admin.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("5","customer_account_created","0","","account_created_by_admin.txt","","account_created_by_admin.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("6","new_admin_password","","","admin_password.txt","","admin_password.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("7","newsletter_subscription_confirmation","","","newsletter_subscription_confirmation.txt","","newsletter_subscription_confirmation.html","2017-02-28 18:20:10","2017-02-28 18:20:10","0","",""); -INSERT INTO `message` VALUES("8","mail_colissimo","0","","","","","","","0","",""); -INSERT INTO `message` VALUES("9","order_confirmation_cheque","0","","","","","","","0","",""); -INSERT INTO `message` VALUES("10","order_confirmation_localpickup","0","","","","","","","0","",""); -INSERT INTO `message` VALUES("11","send_comfirmation_freeshipping","","","send_comfirmation_freeshipping.txt","","send_comfirmation_freeshipping.html","2017-03-02 15:49:57","2017-03-02 15:49:57","1","2017-03-02 15:49:57",""); -INSERT INTO `message` VALUES("12","order_confirmation_icirelais","0","","","","","","","0","",""); -INSERT INTO `message` VALUES("13","paypal_payment_confirmation","","","paypal-payment-confirmation.txt","","paypal-payment-confirmation.html","2017-03-02 15:59:00","2017-03-02 15:59:00","1","2017-03-02 15:59:00",""); -INSERT INTO `message` VALUES("14","paypal_recursive_payment_confirmation","","","paypal-recursive-payment-confirmation.txt","","paypal-recursive-payment-confirmation.html","2017-03-02 15:59:00","2017-03-02 15:59:00","1","2017-03-02 15:59:00",""); -INSERT INTO `message` VALUES("15","atos_payment_confirmation","","","atos-payment-confirmation.txt","","atos-payment-confirmation.html","2017-03-02 16:01:40","2017-03-02 16:01:40","1","2017-03-02 16:01:40",""); -INSERT INTO `message` VALUES("16","recall_payment_not_paid","","","","","","2017-03-02 16:02:39","2017-03-02 16:02:39","1","2017-03-02 16:02:39",""); - - - -DROP TABLE `message_i18n`; - -CREATE TABLE `message_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` text, - `subject` text, - `text_message` longtext, - `html_message` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `message_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `message` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `message_i18n` VALUES("1","de_DE","Bestellbestätigung den Kunden gesendet","Ihre Bestellung {$order_ref} bei {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("1","en_US","Order confirmation sent to the customer","Your order {$order_ref} at {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("1","es_ES","Confirmación de la orden enviada al cliente","Su orden {$order_ref} en {tecla config = \"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("1","fr_FR","Confirmation de commande envoyée au client","Votre commande {$order_ref} chez {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("2","de_DE","Ihr neues Passwort","Ihr neues Passwort für {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("2","en_US","Your new password","Your new password for {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("2","es_ES","Su nueva contraseña","Su nueva contraseña para {tecla config = \"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("2","fr_FR","Votre nouveau mot de passe","Votre nouveau mot de passe {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("3","de_DE","Gesendete Nachricht wenn eine neue Bestellung erteilt wird.","Neue Bestellung {$order_ref} für {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("3","en_US","Message sent to the shop owner when a new order is placed","New order {$order_ref} placed on {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("3","es_ES","Mensaje enviado al propietario de la tienda cuando se envía una nueva orden","Nueva orden {$order_ref} ubicada en {tecla config = \"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("3","fr_FR","Message envoyé au gestionnaire de la boutique lors d\'une nouvelle commande.","Nouvelle commande {$order_ref} reçue sur {config key=\"store_name\"}","",""); -INSERT INTO `message_i18n` VALUES("4","de_DE","Mail an den Kunden geschickt, wenn sein Passwort oder E-Mail von einem Administrator im Back-Office geändert werden","Ihre Konto-Zugriff für {config key=\"store_name\"} wurde geändert","",""); -INSERT INTO `message_i18n` VALUES("4","en_US","Mail sent to the customer when its password or email is changed in the back-office","Your account information on {config key=\"store_name\"} has been changed.","",""); -INSERT INTO `message_i18n` VALUES("4","es_ES","Correo enviado al cliente cuando se cambia su contraseña o correo electrónico en el back-office","La información de su cuenta en {tecla config = \"store_name\"} ha sido cambiada.","",""); -INSERT INTO `message_i18n` VALUES("4","fr_FR","Message envoyé au client lorsque son mot de passe ou son email est changé dans le back-office","L\'accès à votre compte {config key=\"store_name\"} a changé","",""); -INSERT INTO `message_i18n` VALUES("5","de_DE","Mail an den Kunden geschickt, wenn sein Konto von einem Administrator im Back-Office erstellt wird","Ein Konto {config key=\"store_name\"} wurde für Sie erstellt.","",""); -INSERT INTO `message_i18n` VALUES("5","en_US","Mail sent to the customer when its account is created by an administrator in the back-office","A {config key=\"store_name\"} account has been created for you","",""); -INSERT INTO `message_i18n` VALUES("5","es_ES","Correo enviado al cliente cuando se crea su cuenta por un administrador en el back-office","Una {config key=\"store_name\"} cuenta ha sido creada para ti","",""); -INSERT INTO `message_i18n` VALUES("5","fr_FR","Mail envoyé au client lorsque son compte est créé depuis le back-office par un administrateur","Un compte {config key=\"store_name\"} vient d\'être créé pour vous.","",""); -INSERT INTO `message_i18n` VALUES("6","de_DE","","","",""); -INSERT INTO `message_i18n` VALUES("6","en_US","Mail sent to an administrator who requested a new password","","",""); -INSERT INTO `message_i18n` VALUES("6","es_ES","Correo enviado a un administrador que ha solicitado una nueva contraseña","","",""); -INSERT INTO `message_i18n` VALUES("6","fr_FR","Courrier envoyé à un administrateur qui a demandé un nouveau mot de passe","","",""); -INSERT INTO `message_i18n` VALUES("7","de_DE","","","",""); -INSERT INTO `message_i18n` VALUES("7","en_US","Newsletter subscription confirmation mail","Your subscription to %store newsletter","",""); -INSERT INTO `message_i18n` VALUES("7","es_ES","Confirmación de suscripción por correo al boletín","Tu suscripción al boletín de %store","",""); -INSERT INTO `message_i18n` VALUES("7","fr_FR","Mail de confirmation d\'inscription à la newsletter","Vous avez souscrit à la newsletter du site %store","",""); -INSERT INTO `message_i18n` VALUES("8","en_US","Colissimo shipping message","Your order {$order_ref} has been shipped","{loop type=\"customer\" name=\"customer.order\" current=\"false\" id=\"$customer_id\" backend_context=\"1\"}\nDear {$FIRSTNAME} {$LASTNAME},\n{/loop}\nThank you for your order on our online store {config key=\"store_name\"}.\nYour order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.\nYou can use this tracking number to get your parcel in your local La Poste office. If don\'t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.\nFeel free to contact us for any forther information\nBest Regards.","{loop type=\"customer\" name=\"customer.order\" current=\"false\" id=\"$customer_id\" backend_context=\"1\"}\n

Dear {$FIRSTNAME} {$LASTNAME},

\n{/loop}\n

Thank you for your order on our online store {config key=\"store_name\"}.

\n

Your order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.

\n

You can use this tracking number to get your parcel in your local La Poste office. If don\'t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.

\n

Feel free to contact us for any forther information

\n

Best Regards.

"); -INSERT INTO `message_i18n` VALUES("8","fr_FR","Message d\'expédition de colissimo","Suivi colissimo commande : {$order_ref}","{loop type=\"customer\" name=\"customer.order\" current=\"false\" id=\"$customer_id\" backend_context=\"1\"}\n{$LASTNAME} {$FIRSTNAME},\n{/loop}\nNous vous remercions de votre commande sur notre site {config key=\"store_name\"}\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\nSon numéro de suivi est le suivant : {$package}\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\nATTENTION ! Si vous ne trouvez pas l\'avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n\'hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\nNous restons à votre disposition pour toute information complémentaire.\nCordialement","{loop type=\"customer\" name=\"customer.order\" current=\"false\" id=\"$customer_id\" backend_context=\"1\"}\n{$LASTNAME} {$FIRSTNAME},\n{/loop}\nNous vous remercions de votre commande sur notre site {config key=\"store_name\"}\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\nSon numéro de suivi est le suivant : {$package}\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\nATTENTION ! Si vous ne trouvez pas l\'avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n\'hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\nNous restons à votre disposition pour toute information complémentaire.\nCordialement"); -INSERT INTO `message_i18n` VALUES("9","en_US","Confirmation of payment by cheque","Payment of order {$order_ref}","Dear customer,\nThis is a confirmation of the payment by cheque of your order {$order_ref} on our shop.\nYour invoice is now available in your customer account at {config key=\"url_site\"}\nThank you again for your purchase.\nThe {config key=\"store_name\"} team.","\n\n\n \n courriel de confirmation de commande de {config key=\"url_site\"} \n \n\n\n
\n
\n

{config key=\"store_name\"}

\n

The payment of your order is confirmed

\n

Reference {$order_ref}

\n
\n

\n Your invoice is now available in your customer account on\n {config key=\"store_name\"}.\n

\n

Thank you for your order !

\n

The {config key=\"store_name\"} team.

\n
\n\n"); -INSERT INTO `message_i18n` VALUES("9","fr_FR","Confirmation de paiement par chèque","Paiement de la commande : {$order_ref}","Cher client,\nCe message confirme le paiement par chèque de votre commande numero {$order_ref} sur notre boutique.\nVotre facture est maintenant disponible dans votre compte client à l\'adresse {config key=\"url_site\"}\nMerci encore pour votre achat !\nL\'équipe {config key=\"store_name\"}","\n\n\n \n Confirmation du paiement de votre commande sur {config key=\"url_site\"} \n \n\n\n
\n
\n

{config key=\"store_name\"}

\n

Confirmation du paiement de votre commande

\n

N° {$order_ref}

\n
\n

\n Le suivi de votre commande est disponible dans la rubrique mon compte sur\n {config key=\"url_site\"}\n

\n

Merci pour votre achat !

\n

L\'équipe {config key=\"store_name\"}

\n
\n\n"); -INSERT INTO `message_i18n` VALUES("10","en_US","order confirmation_localpickup","Reception de la commande : {$order_ref}","Votre commande: {$order_ref} est disponible à l\'adresse suivante :\n{$store_name}\n{$store_address1}\n{$store_address2}\n{$store_address3}\n{$store_zipcode} {$store_city}\n{$store_country} ","

Votre commande: {$order_ref} est disponible à l\'adresse suivante :
{$store_name}
{$store_address1}{if !empty($store_address2)}
{$store_address2}{/if}{if !empty($store_address3)}
{$store_address3}{/if}
{$store_zipcode} {$store_city}
{$store_country}

"); -INSERT INTO `message_i18n` VALUES("10","fr_FR","order confirmation_localpickup","Reception de la commande : {$order_ref}","Votre commande: {$order_ref} est disponible à l\'adresse suivante :\n{$store_name}\n{$store_address1}\n{$store_address2}\n{$store_address3}\n{$store_zipcode} {$store_city}\n{$store_country} ","

Votre commande: {$order_ref} est disponible à l\'adresse suivante :
{$store_name}
{$store_address1}{if !empty($store_address2)}
{$store_address2}{/if}{if !empty($store_address3)}
{$store_address3}{/if}
{$store_zipcode} {$store_city}
{$store_country}

"); -INSERT INTO `message_i18n` VALUES("11","cs_CZ","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","de_DE","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","en_US","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","es_ES","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","fr_FR","Confirmation d\'envoi de commande","Confirmation d\'envoi de commande","",""); -INSERT INTO `message_i18n` VALUES("11","it_IT","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("11","ru_RU","Order send confirmation","Order send confirmation","",""); -INSERT INTO `message_i18n` VALUES("12","en_US","order confirmation icirelais","Livraison de la commande : {$order_ref}","{loop name=\"order.invoice\" type=\"order\" id=$order_id customer=\"*\"}\n {loop name=\"currency.order\" type=\"currency\" id=$CURRENCY}\n {assign \"orderCurrency\" $CODE}\n {/loop}\n{loop type=\"order_address\" name=\"delivery_address\" id=$DELIVERY_ADDRESS}\n{loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop}{$FIRSTNAME} {$LASTNAME}\\r\\n\n{$ADDRESS1} {$ADDRESS2} {$ADDRESS3}\\r\\n\n{$ZIPCODE} {$CITY}\\r\\n\n{loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}\\r\\n\n{/loop}\nConfirmation de commande {$REF} du {format_date date=$INVOICE_DATE}\\r\\n\\r\\n\nLes articles commandés:\\r\\n\n{loop type=\"order_product\" name=\"order-products\" order=$ID}\n{if $WAS_IN_PROMO == 1}\n {assign \"realPrice\" $PROMO_PRICE}\n {assign \"realTax\" $PROMO_PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PROMO_PRICE}\n{else}\n {assign \"realPrice\" $PRICE}\n {assign \"realTax\" $PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PRICE}\n{/if}\n \\r\\n\n Article : {$TITLE}\n{ifloop rel=\"combinations\"}\n {loop type=\"order_product_attribute_combination\" name=\"combinations\" order_product=$ID}\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}\\r\\n\n{/loop}\n{/ifloop}\\r\\n\n Quantité : {$QUANTITY}\\r\\n\n Prix unitaire TTC : {$realTaxedPrice} {$orderCurrency}\\r\\n\n{/loop}\n\\r\\n-----------------------------------------\\r\\n\nMontant total TTC : {$TOTAL_TAXED_AMOUNT - $POSTAGE} {$orderCurrency} \\r\\n\nFrais de port TTC : {$POSTAGE} {$orderCurrency} \\r\\n\nSomme totale: {$TOTAL_TAXED_AMOUNT} {$orderCurrency} \\r\\n\n==================================\\r\\n\\r\\n\nVotre facture est disponible dans la rubrique mon compte sur {config key=\"url_site\"}\n{loop name=\"tracking\" type=\"dpdpickup.urltracking\" ref=$REF}\nVous pouvez suivre votre colis à l\'adresse suivante: {$URL}\n{/loop}\n{/loop}","{loop name=\"order.invoice\" type=\"order\" id=$order_id customer=\"*\"}\n {loop name=\"currency.order\" type=\"currency\" id=$CURRENCY}\n {assign \"orderCurrency\" $SYMBOL}\n {/loop}\n{loop type=\"customer\" name=\"customer.invoice\" id=$CUSTOMER current=\"0\"}\n {assign var=\"customer_ref\" value=$REF}\n{/loop}\n\n\n\n \n courriel de confirmation de commande de {config key=\"url_site\"} \n {literal}\n \n {/literal}\n\n\n
\n

{config key=\"store_name\"}

\n

Confirmation de commande

\n

N° {$REF} du {format_date date=$INVOICE_DATE output=\"date\"}

\n
\n \n \n \n \n \n \n \n \n {loop type=\"order_product\" name=\"order-products\" order=$ID}\n {if $WAS_IN_PROMO == 1}\n {assign \"realPrice\" $PROMO_PRICE}\n {assign \"realTax\" $PROMO_PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PROMO_PRICE}\n {else}\n {assign \"realPrice\" $PRICE}\n {assign \"realTax\" $PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PRICE}\n {/if}\n \n \n \n \n \n \n {/loop}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
RéférenceDésignationP.U. €Qté
{$REF}{$TITLE}\n {ifloop rel=\"combinations\"}\n {loop type=\"order_product_attribute_combination\" name=\"combinations\" order_product=$ID}\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}
\n {/loop}\n {/ifloop}\n
{$orderCurrency} {$realTaxedPrice}{$QUANTITY}
 
Montant total avant remise €{$orderCurrency} {$TOTAL_TAXED_AMOUNT - $POSTAGE}
Port €{$orderCurrency} {$POSTAGE}
Montant total de la commande €{$orderCurrency} {$TOTAL_TAXED_AMOUNT}
\n
\n

LIVRAISON : {loop name=\"delivery-module\" type=\"module\" id=$DELIVERY_MODULE}{$TITLE}{/loop}

\n {loop type=\"order_address\" name=\"delivery_address\" id=$DELIVERY_ADDRESS}\n

N° de client : {$customer_ref}

\n

Nom :\n {loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\n

N° et rue :\n {$ADDRESS1}

\n

Complément : {$ADDRESS2}\n {$ADDRESS3}

\n

Code postal : {$ZIPCODE}

\n

Ville : {$CITY}

\n

Pays : {loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}

\n
\n {/loop}\n
\n

FACTURATION : paiement par {loop name=\"payment-module\" type=\"module\" id=$PAYMENT_MODULE}{$TITLE}{/loop}

\n {loop type=\"order_address\" name=\"delivery_address\" id=$INVOICE_ADDRESS}\n

N° de client : {$customer_ref}

\n

Nom :\n {loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\n

N° et rue :\n {$ADDRESS1}

\n

Complément : {$ADDRESS2}\n {$ADDRESS3}

\n

Code postal : {$ZIPCODE}

\n

Ville : {$CITY}

\n

Pays : {loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}

\n
\n {/loop}\n

Le suivi de votre commande est disponible dans la rubrique mon compte sur {config key=\"url_site\"}

\n

Vous pouvez suivre votre colis {$DELIVERY_REF}\">ici

\n
\n\n\n{/loop}"); -INSERT INTO `message_i18n` VALUES("12","fr_FR","order confirmation icirelais","Livraison de la commande : {$order_ref}","{loop name=\"order.invoice\" type=\"order\" id=$order_id customer=\"*\"}\n {loop name=\"currency.order\" type=\"currency\" id=$CURRENCY}\n {assign \"orderCurrency\" $CODE}\n {/loop}\n{loop type=\"order_address\" name=\"delivery_address\" id=$DELIVERY_ADDRESS}\n{loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop}{$FIRSTNAME} {$LASTNAME}\\r\\n\n{$ADDRESS1} {$ADDRESS2} {$ADDRESS3}\\r\\n\n{$ZIPCODE} {$CITY}\\r\\n\n{loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}\\r\\n\n{/loop}\nConfirmation de commande {$REF} du {format_date date=$INVOICE_DATE}\\r\\n\\r\\n\nLes articles commandés:\\r\\n\n{loop type=\"order_product\" name=\"order-products\" order=$ID}\n{if $WAS_IN_PROMO == 1}\n {assign \"realPrice\" $PROMO_PRICE}\n {assign \"realTax\" $PROMO_PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PROMO_PRICE}\n{else}\n {assign \"realPrice\" $PRICE}\n {assign \"realTax\" $PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PRICE}\n{/if}\n \\r\\n\n Article : {$TITLE}\n{ifloop rel=\"combinations\"}\n {loop type=\"order_product_attribute_combination\" name=\"combinations\" order_product=$ID}\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}\\r\\n\n{/loop}\n{/ifloop}\\r\\n\n Quantité : {$QUANTITY}\\r\\n\n Prix unitaire TTC : {$realTaxedPrice} {$orderCurrency}\\r\\n\n{/loop}\n\\r\\n-----------------------------------------\\r\\n\nMontant total TTC : {$TOTAL_TAXED_AMOUNT - $POSTAGE} {$orderCurrency} \\r\\n\nFrais de port TTC : {$POSTAGE} {$orderCurrency} \\r\\n\nSomme totale: {$TOTAL_TAXED_AMOUNT} {$orderCurrency} \\r\\n\n==================================\\r\\n\\r\\n\nVotre facture est disponible dans la rubrique mon compte sur {config key=\"url_site\"}\n{loop name=\"tracking\" type=\"dpdpickup.urltracking\" ref=$REF}\nVous pouvez suivre votre colis à l\'adresse suivante: {$URL}\n{/loop}\n{/loop}","{loop name=\"order.invoice\" type=\"order\" id=$order_id customer=\"*\"}\n {loop name=\"currency.order\" type=\"currency\" id=$CURRENCY}\n {assign \"orderCurrency\" $SYMBOL}\n {/loop}\n{loop type=\"customer\" name=\"customer.invoice\" id=$CUSTOMER current=\"0\"}\n {assign var=\"customer_ref\" value=$REF}\n{/loop}\n\n\n\n \n courriel de confirmation de commande de {config key=\"url_site\"} \n {literal}\n \n {/literal}\n\n\n
\n

{config key=\"store_name\"}

\n

Confirmation de commande

\n

N° {$REF} du {format_date date=$INVOICE_DATE output=\"date\"}

\n
\n \n \n \n \n \n \n \n \n {loop type=\"order_product\" name=\"order-products\" order=$ID}\n {if $WAS_IN_PROMO == 1}\n {assign \"realPrice\" $PROMO_PRICE}\n {assign \"realTax\" $PROMO_PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PROMO_PRICE}\n {else}\n {assign \"realPrice\" $PRICE}\n {assign \"realTax\" $PRICE_TAX}\n {assign \"realTaxedPrice\" $TAXED_PRICE}\n {/if}\n \n \n \n \n \n \n {/loop}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
RéférenceDésignationP.U. €Qté
{$REF}{$TITLE}\n {ifloop rel=\"combinations\"}\n {loop type=\"order_product_attribute_combination\" name=\"combinations\" order_product=$ID}\n {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE}
\n {/loop}\n {/ifloop}\n
{$orderCurrency} {$realTaxedPrice}{$QUANTITY}
 
Montant total avant remise €{$orderCurrency} {$TOTAL_TAXED_AMOUNT - $POSTAGE}
Port €{$orderCurrency} {$POSTAGE}
Montant total de la commande €{$orderCurrency} {$TOTAL_TAXED_AMOUNT}
\n
\n

LIVRAISON : {loop name=\"delivery-module\" type=\"module\" id=$DELIVERY_MODULE}{$TITLE}{/loop}

\n {loop type=\"order_address\" name=\"delivery_address\" id=$DELIVERY_ADDRESS}\n

N° de client : {$customer_ref}

\n

Nom :\n {loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\n

N° et rue :\n {$ADDRESS1}

\n

Complément : {$ADDRESS2}\n {$ADDRESS3}

\n

Code postal : {$ZIPCODE}

\n

Ville : {$CITY}

\n

Pays : {loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}

\n
\n {/loop}\n
\n

FACTURATION : paiement par {loop name=\"payment-module\" type=\"module\" id=$PAYMENT_MODULE}{$TITLE}{/loop}

\n {loop type=\"order_address\" name=\"delivery_address\" id=$INVOICE_ADDRESS}\n

N° de client : {$customer_ref}

\n

Nom :\n {loop type=\"title\" name=\"order-invoice-address-title\" id=$TITLE}{$LONG}{/loop} {$FIRSTNAME} {$LASTNAME}

\n

N° et rue :\n {$ADDRESS1}

\n

Complément : {$ADDRESS2}\n {$ADDRESS3}

\n

Code postal : {$ZIPCODE}

\n

Ville : {$CITY}

\n

Pays : {loop type=\"country\" name=\"country_delivery\" id=$COUNTRY}{$TITLE}{/loop}

\n
\n {/loop}\n

Le suivi de votre commande est disponible dans la rubrique mon compte sur {config key=\"url_site\"}

\n

Vous pouvez suivre votre colis {$DELIVERY_REF}\">ici

\n
\n\n\n{/loop}"); -INSERT INTO `message_i18n` VALUES("13","en_US","Paypal payment confirmation","Payment of order {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("13","fr_FR","Confirmation de paiement par Paypal","Confirmation du paiement de votre commande {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("14","en_US","Paypal payment confirmation","Payment of order {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("14","fr_FR","Confirmation de paiement par Paypal","Confirmation du paiement de votre commande {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("15","en_US","Atos payment confirmation","Payment of order {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("15","fr_FR","Confirmation de paiement par Atos","Confirmation du paiement de votre commande {$order_ref}","",""); -INSERT INTO `message_i18n` VALUES("16","en_US","Recall payment","Payment recall for order {$order_ref}","Cher Client,\nNous avons bien reçu votre commande sur notre site {config key=\"store_name\"} et vous en remercions.\nCependant, cette commande est non réglée car votre règlement par carte n\'a pas abouti.\nNous ne pouvons donc la traiter.\nSi vous souhaitez maintenir cette commande, nous vous conseillons de cliquer sur le lien ci-dessous afin de valider votre règlement par carte bancaire.\nVotre commande: {$recall_url}?customer_id={$customer_id}&order_id={$order_id}\"\nDès réception de votre paiement, nous traitons votre commande pour expédition au plus vite.\nCordialement\nL\'équipe de {config key=\"store_name\"}","\n\n\n\n \n Payment recall for your order : {config key=\"url_site\"} \n\n\n
\n
\n

{config key=\"store_name\"}

\n\n

Payment recall for your order

\n\n

N° {$order_ref}

\n
\n

\n Dear Customer,
\n Nous avons bien reçu votre commande sur notre site {config key=\"store_name\"} et vous en remercions.
\n Cependant, cette commande est non réglée car votre règlement par carte n\'a pas abouti.
\n Nous ne pouvons donc la traiter.\n

\n

Si vous souhaitez maintenir cette commande, nous vous conseillons de cliquer sur le lien ci-dessous afin de valider votre règlement par carte bancaire.

\n Votre commande\n

Dès réception de votre paiement, nous traitons votre commande pour expédition au plus vite.

\n Cordialement
\n

L\'équipe {config key=\"store_name\"}

\n\n"); -INSERT INTO `message_i18n` VALUES("16","fr_FR","Rappel de paiement","Rappel de paiement pour votre commande {$order_ref}","Cher Client,\nNous avons bien reçu votre commande sur notre site {config key=\"store_name\"} et vous en remercions.\nCependant, cette commande est non réglée car votre règlement par carte n\'a pas abouti.\nNous ne pouvons donc la traiter.\nSi vous souhaitez maintenir cette commande, nous vous conseillons de cliquer sur le lien ci-dessous afin de valider votre règlement par carte bancaire.\nVotre commande: {$recall_url}?customer_id={$customer_id}&order_id={$order_id}\"\nDès réception de votre paiement, nous traitons votre commande pour expédition au plus vite.\nCordialement\nL\'équipe de {config key=\"store_name\"}","\n\n\n\n \n Rappel de paiement pour votre commande sur {config key=\"url_site\"} \n\n\n
\n
\n

{config key=\"store_name\"}

\n\n

Rappel de paiement de votre commande

\n\n

N° {$order_ref}

\n
\n

\n Cher Client,
\n Nous avons bien reçu votre commande sur notre site {config key=\"store_name\"} et vous en remercions.
\n Cependant, cette commande est non réglée car votre règlement par carte n\'a pas abouti.
\n Nous ne pouvons donc la traiter.\n

\n

Si vous souhaitez maintenir cette commande, nous vous conseillons de cliquer sur le lien ci-dessous afin de valider votre règlement par carte bancaire.

\n Votre commande\n

Dès réception de votre paiement, nous traitons votre commande pour expédition au plus vite.

\n Cordialement
\n

L\'équipe {config key=\"store_name\"}

\n
\n\n"); - - - -DROP TABLE `message_version`; - -CREATE TABLE `message_version` ( - `id` int(11) NOT NULL, - `name` varchar(255) NOT NULL, - `secured` tinyint(4) DEFAULT NULL, - `text_layout_file_name` varchar(255) DEFAULT NULL, - `text_template_file_name` varchar(255) DEFAULT NULL, - `html_layout_file_name` varchar(255) DEFAULT NULL, - `html_template_file_name` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `message_version_FK_1` FOREIGN KEY (`id`) REFERENCES `message` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `message_version` VALUES("11","send_comfirmation_freeshipping","","","send_comfirmation_freeshipping.txt","","send_comfirmation_freeshipping.html","2017-03-02 15:49:57","2017-03-02 15:49:57","1","2017-03-02 15:49:57",""); -INSERT INTO `message_version` VALUES("13","paypal_payment_confirmation","","","paypal-payment-confirmation.txt","","paypal-payment-confirmation.html","2017-03-02 15:59:00","2017-03-02 15:59:00","1","2017-03-02 15:59:00",""); -INSERT INTO `message_version` VALUES("14","paypal_recursive_payment_confirmation","","","paypal-recursive-payment-confirmation.txt","","paypal-recursive-payment-confirmation.html","2017-03-02 15:59:00","2017-03-02 15:59:00","1","2017-03-02 15:59:00",""); -INSERT INTO `message_version` VALUES("15","atos_payment_confirmation","","","atos-payment-confirmation.txt","","atos-payment-confirmation.html","2017-03-02 16:01:40","2017-03-02 16:01:40","1","2017-03-02 16:01:40",""); -INSERT INTO `message_version` VALUES("16","recall_payment_not_paid","","","","","","2017-03-02 16:02:39","2017-03-02 16:02:39","1","2017-03-02 16:02:39",""); - - - -DROP TABLE `meta_data`; - -CREATE TABLE `meta_data` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `meta_key` varchar(100) NOT NULL, - `element_key` varchar(100) NOT NULL, - `element_id` int(11) NOT NULL, - `is_serialized` tinyint(1) NOT NULL, - `value` longtext NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `meta_data_key_element_idx` (`meta_key`,`element_key`,`element_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `module`; - -CREATE TABLE `module` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(55) NOT NULL, - `version` varchar(25) NOT NULL DEFAULT '', - `type` tinyint(4) NOT NULL, - `category` varchar(50) NOT NULL DEFAULT 'classic', - `activate` tinyint(4) DEFAULT NULL, - `position` int(11) DEFAULT NULL, - `full_namespace` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`), - KEY `idx_module_activate` (`activate`) -) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; - -INSERT INTO `module` VALUES("1","Carousel","2.3.3","1","classic","1","1","Carousel\\Carousel","2017-02-28 18:20:10","2017-02-28 18:26:58"); -INSERT INTO `module` VALUES("2","Colissimo","2.3.3","2","delivery","1","1","Colissimo\\Colissimo","2017-02-28 18:20:10","2017-02-28 18:26:25"); -INSERT INTO `module` VALUES("3","Cheque","2.3.3","3","payment","1","2","Cheque\\Cheque","2017-02-28 18:20:10","2017-03-02 16:01:54"); -INSERT INTO `module` VALUES("4","Front","2.3.3","1","classic","1","2","Front\\Front","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("5","Tinymce","2.3.3","1","classic","0","16","Tinymce\\Tinymce","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("6","HookNavigation","2.3.3","1","classic","1","11","HookNavigation\\HookNavigation","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("7","HookCurrency","2.3.3","1","classic","0","3","HookCurrency\\HookCurrency","2017-02-28 18:20:10","2017-02-28 18:27:04"); -INSERT INTO `module` VALUES("8","HookLang","2.3.3","1","classic","0","4","HookLang\\HookLang","2017-02-28 18:20:10","2017-02-28 18:27:06"); -INSERT INTO `module` VALUES("9","HookSearch","2.3.3","1","classic","1","5","HookSearch\\HookSearch","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("10","HookCustomer","2.3.3","1","classic","1","6","HookCustomer\\HookCustomer","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("11","HookCart","2.3.3","1","classic","1","7","HookCart\\HookCart","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("12","HookAnalytics","2.3.3","1","classic","0","8","HookAnalytics\\HookAnalytics","2017-02-28 18:20:10","2017-02-28 18:27:13"); -INSERT INTO `module` VALUES("13","HookContact","2.3.3","1","classic","1","9","HookContact\\HookContact","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("14","HookLinks","2.3.3","1","classic","1","10","HookLinks\\HookLinks","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("15","HookNewsletter","2.3.3","1","classic","0","12","HookNewsletter\\HookNewsletter","2017-02-28 18:20:10","2017-03-02 15:59:26"); -INSERT INTO `module` VALUES("16","HookSocial","2.3.3","1","classic","1","13","HookSocial\\HookSocial","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("17","HookProductsNew","2.3.3","1","classic","0","14","HookProductsNew\\HookProductsNew","2017-02-28 18:20:10","2017-03-26 14:20:26"); -INSERT INTO `module` VALUES("18","HookProductsOffer","2.3.3","1","classic","1","15","HookProductsOffer\\HookProductsOffer","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("19","TheliaSmarty","2.3.3","1","classic","1","16","TheliaSmarty\\TheliaSmarty","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("20","VirtualProductControl","2.3.3","1","classic","0","17","VirtualProductControl\\VirtualProductControl","2017-02-28 18:20:10","2017-03-02 15:59:35"); -INSERT INTO `module` VALUES("21","HookAdminHome","2.3.3","1","classic","1","18","HookAdminHome\\HookAdminHome","2017-02-28 18:20:10","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("22","FreeOrder","2.3.3","3","payment","1","4","FreeOrder\\FreeOrder","2017-02-28 18:26:12","2017-06-15 16:31:39"); -INSERT INTO `module` VALUES("23","TheliaMigrateCountry","2.3.3","1","classic","0","19","TheliaMigrateCountry\\TheliaMigrateCountry","2017-02-28 18:26:12","2017-02-28 18:26:12"); -INSERT INTO `module` VALUES("24","VirtualProductDelivery","2.3.3","2","delivery","0","5","VirtualProductDelivery\\VirtualProductDelivery","2017-02-28 18:26:12","2017-03-02 15:50:23"); -INSERT INTO `module` VALUES("25","PayPal","3.0.2","3","classic","0","3","PayPal\\PayPal","2017-03-02 11:34:24","2017-06-15 13:39:20"); -INSERT INTO `module` VALUES("26","FreeShipping","1.1.3","2","delivery","1","2","FreeShipping\\FreeShipping","2017-03-02 15:21:41","2017-03-02 15:50:12"); -INSERT INTO `module` VALUES("27","LocalPickup","1.1","2","delivery","1","3","LocalPickup\\LocalPickup","2017-03-02 15:21:54","2017-03-02 15:50:18"); -INSERT INTO `module` VALUES("28","DpdPickup","1.4.8","2","delivery","1","4","DpdPickup\\DpdPickup","2017-03-02 15:22:05","2017-03-02 15:50:23"); -INSERT INTO `module` VALUES("29","Atos","1.1.2","3","payment","1","1","Atos\\Atos","2017-03-02 16:00:12","2017-03-02 16:01:54"); -INSERT INTO `module` VALUES("30","PaymentRecall","1.1.1","1","classic","1","20","PaymentRecall\\PaymentRecall","2017-03-02 16:02:15","2017-03-02 16:02:37"); -INSERT INTO `module` VALUES("31","ImportT1","0.8.0","1","classic","0","21","ImportT1\\ImportT1","2017-05-04 16:39:20","2017-05-04 16:39:20"); -INSERT INTO `module` VALUES("32","TheCoreDev","","1","classic","1","22","TheCoreDev\\TheCoreDev","2017-06-04 13:35:05","2017-06-15 15:31:14"); - - - -DROP TABLE `module_config`; - -CREATE TABLE `module_config` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `module_id` int(11) NOT NULL, - `name` varchar(255) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_module_id_name` (`module_id`,`name`), - CONSTRAINT `fk_module_config_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; - -INSERT INTO `module_config` VALUES("1","2","prices","2017-02-28 18:26:12","2017-02-28 18:26:12"); -INSERT INTO `module_config` VALUES("2","2","enabled","2017-02-28 18:26:25","2017-02-28 18:26:25"); -INSERT INTO `module_config` VALUES("3","1","is_initialized","2017-02-28 18:26:58","2017-02-28 18:26:58"); -INSERT INTO `module_config` VALUES("4","25","minimum_amount","2017-03-02 15:59:00","2017-03-02 15:59:00"); -INSERT INTO `module_config` VALUES("5","25","maximum_amount","2017-03-02 15:59:00","2017-03-02 15:59:00"); -INSERT INTO `module_config` VALUES("6","25","send_payment_confirmation_message","2017-03-02 15:59:00","2017-03-02 15:59:00"); -INSERT INTO `module_config` VALUES("7","29","atos_transactionId","2017-03-02 16:01:40","2017-03-02 16:01:40"); -INSERT INTO `module_config` VALUES("8","29","minimum_amount","2017-03-02 16:01:40","2017-03-02 16:01:40"); -INSERT INTO `module_config` VALUES("9","29","maximum_amount","2017-03-02 16:01:40","2017-03-02 16:01:40"); -INSERT INTO `module_config` VALUES("10","29","send_payment_confirmation_message","2017-03-02 16:01:40","2017-03-02 16:01:40"); -INSERT INTO `module_config` VALUES("11","30","time_before_mail","2017-03-02 16:02:39","2017-03-02 16:02:39"); -INSERT INTO `module_config` VALUES("12","30","is_initialized","2017-03-02 16:02:39","2017-03-02 16:02:39"); - - - -DROP TABLE `module_config_i18n`; - -CREATE TABLE `module_config_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `value` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `module_config_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `module_config` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `module_config_i18n` VALUES("1","en_US","{\"1\": {\n \"_info\": \"area 1 : France\",\n \"slices\": {\n \"0.25\": 5.23,\n \"0.5\": 6.13,\n \"0.75\": 6.89,\n \"1\": 7.51,\n \"2\": 8.50,\n \"5\": 10.93,\n \"10\": 15.68,\n \"30\": 23.28\n }\n}, \"2\": {\n \"_info\": \"area 2 : A Zone - Union Europ\\u00e9enne et Suisse\",\n \"slices\": {\n \"0.5\": 11.54,\n \"1\": 14.11,\n \"2\": 15.68,\n \"5\": 20.14,\n \"10\": 33.25,\n \"20\": 55.10,\n \"30\": 55.10\n }\n}, \"3\": {\n \"_info\": \"area 3 : B Zone - Pays de l\\u2019Europe de l\\u2019Est (hors Union Europ\\u00e9enne et Russie), Norv\\u00e8ge, Maghreb\",\n \"slices\": {\n \"0.5\": 15.39,\n \"1\": 18.38,\n \"2\": 20.00,\n \"5\": 25.65,\n \"10\": 42.75,\n \"20\": 66.50\n }\n}, \"4\": {\n \"_info\": \"area 4 : C Zone - Autres destinations\",\n \"slices\": {\n \"0.5\": 22.52,\n \"1\": 24.99,\n \"2\": 34.30,\n \"5\": 50.35,\n \"10\": 95.00,\n \"20\": 152.00\n }\n}, \"5\": {\n \"_info\": \"area 5 : France OM1\",\n \"slices\": {\n \"0.5\": 8.69,\n \"1\": 13.16,\n \"2\": 17.96,\n \"5\": 26.60,\n \"10\": 42.75,\n \"30\": 95.95\n }\n}, \"6\": {\n \"_info\": \"area 6 : France OM2\",\n \"slices\": {\n \"0.5\": 10.40,\n \"1\": 15.72,\n \"2\": 27.74,\n \"5\": 46.08,\n \"10\": 90.25,\n \"30\": 237.50\n }\n}}\n"); -INSERT INTO `module_config_i18n` VALUES("2","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("3","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("4","en_US","0"); -INSERT INTO `module_config_i18n` VALUES("5","en_US","0"); -INSERT INTO `module_config_i18n` VALUES("6","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("7","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("8","en_US","0"); -INSERT INTO `module_config_i18n` VALUES("9","en_US","0"); -INSERT INTO `module_config_i18n` VALUES("10","en_US","1"); -INSERT INTO `module_config_i18n` VALUES("11","en_US","20"); -INSERT INTO `module_config_i18n` VALUES("12","en_US","1"); - - - -DROP TABLE `module_hook`; - -CREATE TABLE `module_hook` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `module_id` int(11) NOT NULL, - `hook_id` int(11) NOT NULL, - `classname` varchar(255) DEFAULT NULL, - `method` varchar(255) DEFAULT NULL, - `active` tinyint(1) NOT NULL, - `hook_active` tinyint(1) NOT NULL, - `module_active` tinyint(1) NOT NULL, - `position` int(11) NOT NULL, - `templates` text, - PRIMARY KEY (`id`), - KEY `idx_module_hook_active` (`active`), - KEY `fk_module_hook_module_id_idx` (`module_id`), - KEY `fk_module_hook_hook_id_idx` (`hook_id`), - CONSTRAINT `fk_module_hook_hook_id` FOREIGN KEY (`hook_id`) REFERENCES `hook` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_module_hook_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8; - -INSERT INTO `module_hook` VALUES("1","7","94","hookcurrency.hook.front","insertTemplate","1","1","0","1","render:main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("2","8","94","hooklang.hook.front","insertTemplate","1","1","0","2","render:main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("3","9","91","hooksearch.hook.front","insertTemplate","1","1","1","1","css:assets/css/styles.css"); -INSERT INTO `module_hook` VALUES("4","9","94","hooksearch.hook.front","insertTemplate","1","1","1","3","render:main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("5","9","95","hooksearch.hook.front","insertTemplate","0","1","1","1","render:main-navbar-primary.html"); -INSERT INTO `module_hook` VALUES("6","10","91","hookcustomer.hook.front","insertTemplate","1","1","1","2","css:assets/css/styles.css"); -INSERT INTO `module_hook` VALUES("7","10","94","hookcustomer.hook.front","insertTemplate","1","1","1","5","render:main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("8","11","91","hookcart.hook.front","insertTemplate","1","1","1","3","css:assets/css/styles.css"); -INSERT INTO `module_hook` VALUES("9","11","94","hookcart.hook.front","insertTemplate","1","1","1","4","main-navbar-secondary.html"); -INSERT INTO `module_hook` VALUES("10","11","223","hookcart.hook.front","insertTemplate","1","1","1","1","render:mini-cart.html"); -INSERT INTO `module_hook` VALUES("11","12","91","hookanalytics.hook.front","onMainHeadBottom","1","1","0","4",""); -INSERT INTO `module_hook` VALUES("12","12","1235","hookanalytics.hook.back","insertTemplate","1","1","0","1","render:module_configuration.html"); -INSERT INTO `module_hook` VALUES("13","12","1236","hookanalytics.hook.back","insertTemplate","1","1","0","1","js:assets/js/module-configuration.js"); -INSERT INTO `module_hook` VALUES("14","13","100","hookcontact.hook.front","onMainFooterBody","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("15","14","100","hooklinks.hook.front","onMainFooterBody","0","1","1","2",""); -INSERT INTO `module_hook` VALUES("16","6","95","hooknavigation.hook.front","insertTemplate","1","1","1","2","render:main-navbar-primary.html"); -INSERT INTO `module_hook` VALUES("17","6","101","hooknavigation.hook.front","onMainFooterBottom","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("18","6","100","hooknavigation.hook.front","onMainFooterBody","1","1","1","3",""); -INSERT INTO `module_hook` VALUES("19","15","100","hooknewsletter.hook.front","onMainFooterBody","1","1","0","4",""); -INSERT INTO `module_hook` VALUES("20","16","100","hooksocial.hook.front","onMainFooterBody","1","1","1","5",""); -INSERT INTO `module_hook` VALUES("21","16","1235","hooksocial.hook.back","insertTemplate","1","1","1","2","render:module_configuration.html"); -INSERT INTO `module_hook` VALUES("22","16","1236","hooksocial.hook.back","insertTemplate","1","1","1","2","js:assets/js/module-configuration.js"); -INSERT INTO `module_hook` VALUES("23","17","149","hookproductsnew.hook.front","insertTemplate","1","1","0","1","render:home-body.html"); -INSERT INTO `module_hook` VALUES("24","18","149","hookproductsoffer.hook.front","insertTemplate","1","1","1","2","render:home-body.html"); -INSERT INTO `module_hook` VALUES("25","20","1304","virtualproductcontrol.hook","onMainBeforeContent","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("26","21","1259","hookadminhome.hook.css","insertTemplate","1","1","1","1","css:assets/css/home.css"); -INSERT INTO `module_hook` VALUES("27","21","1105","hookadminhome.hook.block_information","insertTemplate","1","1","1","1","render:block-information.html"); -INSERT INTO `module_hook` VALUES("28","21","1105","hookadminhome.hook.block_statistics","blockStatistics","1","1","1","2",""); -INSERT INTO `module_hook` VALUES("29","21","1107","hookadminhome.hook.block_statistics","blockStatisticsJs","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("30","21","1280","hookadminhome.hook.block_sales_statistics","blockSalesStatistics","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("31","21","1280","hookadminhome.hook.block_news","blockNews","1","1","1","2",""); -INSERT INTO `module_hook` VALUES("32","21","1107","hookadminhome.hook.block_news","insertTemplate","1","1","1","2","render:block-news-js.html"); -INSERT INTO `module_hook` VALUES("33","21","1280","hookadminhome.hook.block_thelia_informations","blockTheliaInformation","1","1","1","3",""); -INSERT INTO `module_hook` VALUES("34","2","1235","colissimo.hook","onModuleConfiguration","1","1","1","3",""); -INSERT INTO `module_hook` VALUES("35","2","1236","colissimo.hook","insertTemplate","1","1","1","3","render:assets/js/module-configuration-js.html"); -INSERT INTO `module_hook` VALUES("36","1","149","carousel.hook","insertTemplate","1","1","1","3","render:carousel.html"); -INSERT INTO `module_hook` VALUES("37","1","1235","carousel.hook","insertTemplate","1","1","1","4","render:module_configuration.html"); -INSERT INTO `module_hook` VALUES("38","1","1236","carousel.hook","insertTemplate","1","1","1","4","js:assets/js/module-configuration.js"); -INSERT INTO `module_hook` VALUES("39","1","1276","carousel.hook.back","onMainTopMenuTools","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("40","3","1235","cheque.hook","insertTemplate","1","1","1","5","render:module_configuration.html"); -INSERT INTO `module_hook` VALUES("41","3","2022","cheque.hook","onAdditionalPaymentInfo","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("42","27","1235","local.pickup.hook","onModuleConfiguration","1","1","1","6",""); -INSERT INTO `module_hook` VALUES("43","28","185","dpdpickup.delivery.show","renderDpdPickupChoice","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("44","28","2","dpdpickup.delivery.show","renderDeliveryAddress","1","1","1","1",""); -INSERT INTO `module_hook` VALUES("45","25","1235","paypal.back.hook","onModuleConfigure","1","1","0","7",""); -INSERT INTO `module_hook` VALUES("46","25","1387","paypal.back.hook","onOrderEditPaymentModuleBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("47","25","1177","paypal.back.hook","onOrderEditJs","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("48","25","23","paypal.front.hook","onLoginMainBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("49","25","3","paypal.front.hook","onOrderInvoicePaymentExtra","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("50","25","4","paypal.front.hook","onOrderInvoiceBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("51","25","5","paypal.front.hook","onOrderInvoiceJavascriptInitialization","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("52","25","2022","paypal.front.hook","onOrderPlacedAdditionalPaymentInfo","1","1","0","2",""); -INSERT INTO `module_hook` VALUES("53","25","36","paypal.front.hook","onCartBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("54","25","111","paypal.front.hook","onOrderDeliveryFormBottom","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("55","25","115","paypal.front.hook","onOrderAfterJavascriptInclude","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("56","25","2032","paypal.pdf.hook","onAfterPaymentModule","1","1","0","1",""); -INSERT INTO `module_hook` VALUES("57","29","1235","atos.configuration.hook","onModuleConfigure","1","1","1","8",""); - - - -DROP TABLE `module_i18n`; - -CREATE TABLE `module_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `module_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `module_i18n` VALUES("1","de_DE","Ein Bilder-Karussel auf Ihre Startseite","","",""); -INSERT INTO `module_i18n` VALUES("1","en_US","An image carousel on your home page","","",""); -INSERT INTO `module_i18n` VALUES("1","es_ES","Un carrusel de imágenes en la página de inicio","","",""); -INSERT INTO `module_i18n` VALUES("1","fr_FR","Un carrousel d\'images sur votre page d\'accueil","","",""); -INSERT INTO `module_i18n` VALUES("2","de_DE","72Std Lieferung ","","",""); -INSERT INTO `module_i18n` VALUES("2","en_US","72h delivery","","",""); -INSERT INTO `module_i18n` VALUES("2","es_ES","entrega 72h","","",""); -INSERT INTO `module_i18n` VALUES("2","fr_FR","Livraison par colissimo en 72h","","",""); -INSERT INTO `module_i18n` VALUES("3","de_DE","Per Cheque bezahlen","","",""); -INSERT INTO `module_i18n` VALUES("3","en_US","Pay by cheque","","",""); -INSERT INTO `module_i18n` VALUES("3","es_ES","Pagar con Cheque","","",""); -INSERT INTO `module_i18n` VALUES("3","fr_FR","Payer par chèque","","",""); -INSERT INTO `module_i18n` VALUES("4","de_DE","Front office Modul ","","",""); -INSERT INTO `module_i18n` VALUES("4","en_US","Front office integration","","",""); -INSERT INTO `module_i18n` VALUES("4","es_ES","Front office integración","","",""); -INSERT INTO `module_i18n` VALUES("4","fr_FR","Module Front office","","",""); -INSERT INTO `module_i18n` VALUES("5","de_DE","TinyMCE WYSIWYG Editor","","",""); -INSERT INTO `module_i18n` VALUES("5","en_US","TinyMCE WYSIWYG editor","","",""); -INSERT INTO `module_i18n` VALUES("5","es_ES","Editor TinyMCE WYSIWYG","","",""); -INSERT INTO `module_i18n` VALUES("5","fr_FR","Editeur visuel TinyMCE","","",""); -INSERT INTO `module_i18n` VALUES("6","de_DE","Menü Block","","",""); -INSERT INTO `module_i18n` VALUES("6","en_US","Navigation block","","",""); -INSERT INTO `module_i18n` VALUES("6","es_ES","Bloque de navegación","","",""); -INSERT INTO `module_i18n` VALUES("6","fr_FR","Bloc menu","","",""); -INSERT INTO `module_i18n` VALUES("7","de_DE","Währungensblock","","",""); -INSERT INTO `module_i18n` VALUES("7","en_US","Currency block","","",""); -INSERT INTO `module_i18n` VALUES("7","es_ES","Bloque de monedas","","",""); -INSERT INTO `module_i18n` VALUES("7","fr_FR","Bloc des devises","","",""); -INSERT INTO `module_i18n` VALUES("8","de_DE","Sprachen Block","","",""); -INSERT INTO `module_i18n` VALUES("8","en_US","Languages block","","",""); -INSERT INTO `module_i18n` VALUES("8","es_ES","Bloque de idiomas","","",""); -INSERT INTO `module_i18n` VALUES("8","fr_FR","Bloc des langues","","",""); -INSERT INTO `module_i18n` VALUES("9","de_DE","Suche-Block","","",""); -INSERT INTO `module_i18n` VALUES("9","en_US","Search block","","",""); -INSERT INTO `module_i18n` VALUES("9","es_ES","Bloque de búsqueda","","",""); -INSERT INTO `module_i18n` VALUES("9","fr_FR","Bloc de recherche","","",""); -INSERT INTO `module_i18n` VALUES("10","de_DE","Kundenkonto-Block","","",""); -INSERT INTO `module_i18n` VALUES("10","en_US","Customer account block","","",""); -INSERT INTO `module_i18n` VALUES("10","es_ES","Bloque de cuenta de cliente","","",""); -INSERT INTO `module_i18n` VALUES("10","fr_FR","Bloc compte client","","",""); -INSERT INTO `module_i18n` VALUES("11","de_DE","Warenkorb Block","","",""); -INSERT INTO `module_i18n` VALUES("11","en_US","Cart block","","",""); -INSERT INTO `module_i18n` VALUES("11","es_ES","Bloque de carrito","","",""); -INSERT INTO `module_i18n` VALUES("11","fr_FR","Bloc panier","","",""); -INSERT INTO `module_i18n` VALUES("12","de_DE","Google Analytics Block","","",""); -INSERT INTO `module_i18n` VALUES("12","en_US","Google Analytics block","","",""); -INSERT INTO `module_i18n` VALUES("12","es_ES","Bloque Google Analytics","","",""); -INSERT INTO `module_i18n` VALUES("12","fr_FR","Bloc Google Analytics","","",""); -INSERT INTO `module_i18n` VALUES("13","de_DE","Kontakt-Block","","",""); -INSERT INTO `module_i18n` VALUES("13","en_US","Contact block","","",""); -INSERT INTO `module_i18n` VALUES("13","es_ES","Bloque de contacto","","",""); -INSERT INTO `module_i18n` VALUES("13","fr_FR","Bloc contact","","",""); -INSERT INTO `module_i18n` VALUES("14","de_DE","Links Block","","",""); -INSERT INTO `module_i18n` VALUES("14","en_US","Links block","","",""); -INSERT INTO `module_i18n` VALUES("14","es_ES","Bloque de enlaces","","",""); -INSERT INTO `module_i18n` VALUES("14","fr_FR","Bloc liens","","",""); -INSERT INTO `module_i18n` VALUES("15","de_DE","Newsletter Block","","",""); -INSERT INTO `module_i18n` VALUES("15","en_US","Newsletter block","","",""); -INSERT INTO `module_i18n` VALUES("15","es_ES","Bloque del boletín de noticias","","",""); -INSERT INTO `module_i18n` VALUES("15","fr_FR","Bloc newsletter","","",""); -INSERT INTO `module_i18n` VALUES("16","de_DE","Social Networks Block","","",""); -INSERT INTO `module_i18n` VALUES("16","en_US","Social Networks block","","",""); -INSERT INTO `module_i18n` VALUES("16","es_ES","Bloque de Redes Sociales","","",""); -INSERT INTO `module_i18n` VALUES("16","fr_FR","Bloc réseaux sociaux","","",""); -INSERT INTO `module_i18n` VALUES("17","de_DE","Neue Produkte Block","","",""); -INSERT INTO `module_i18n` VALUES("17","en_US","New Products block","","",""); -INSERT INTO `module_i18n` VALUES("17","es_ES","Bloque de nuevos productos","","",""); -INSERT INTO `module_i18n` VALUES("17","fr_FR","Bloc nouveaux produits","","",""); -INSERT INTO `module_i18n` VALUES("18","de_DE","Sonderangebot-Block","","",""); -INSERT INTO `module_i18n` VALUES("18","en_US","Products offer block","","",""); -INSERT INTO `module_i18n` VALUES("18","es_ES","Bloque de oferta de productos","","",""); -INSERT INTO `module_i18n` VALUES("18","fr_FR","Bloc promotions","","",""); -INSERT INTO `module_i18n` VALUES("19","de_DE","Smarty Template Engine Integration","","",""); -INSERT INTO `module_i18n` VALUES("19","en_US","Smarty template engine integration","","",""); -INSERT INTO `module_i18n` VALUES("19","es_ES","Integración del motor de plantillas Smarty","","",""); -INSERT INTO `module_i18n` VALUES("19","fr_FR","Intégration du moteur de template Smarty","","",""); -INSERT INTO `module_i18n` VALUES("20","de_DE","Steuerung für virtuelle Produkte","","",""); -INSERT INTO `module_i18n` VALUES("20","en_US","Virtual Product Controller","","",""); -INSERT INTO `module_i18n` VALUES("20","es_ES","Controlador de producto virtual","","",""); -INSERT INTO `module_i18n` VALUES("20","fr_FR","Contôle de produit virtuel","","",""); -INSERT INTO `module_i18n` VALUES("22","en_US","There\'s nothing to pay for this order","","This is a pseudo-payment module for free orders.",""); -INSERT INTO `module_i18n` VALUES("22","fr_FR","Vous n\'avez rien à payer pour cette commande","","Un pseudo-module de paiement pour les commandes de montant nul",""); -INSERT INTO `module_i18n` VALUES("23","en_US","Countries/states migration tool","","",""); -INSERT INTO `module_i18n` VALUES("23","fr_FR","Utilitaire de migration des pays/états","","",""); -INSERT INTO `module_i18n` VALUES("24","en_US","Virtual Products Delivery","","",""); -INSERT INTO `module_i18n` VALUES("24","fr_FR","Livraison Produits Virtuels","","",""); -INSERT INTO `module_i18n` VALUES("25","en_US","PayPal","","",""); -INSERT INTO `module_i18n` VALUES("25","fr_FR","PayPal","","",""); -INSERT INTO `module_i18n` VALUES("26","en_US","Free Shipping","","",""); -INSERT INTO `module_i18n` VALUES("26","fr_FR","Franco de port","","",""); -INSERT INTO `module_i18n` VALUES("27","en_US","Local Pickup","","",""); -INSERT INTO `module_i18n` VALUES("27","fr_FR","Retrait sur place","","",""); -INSERT INTO `module_i18n` VALUES("28","en_US","DpdPickup\\DpdPickup","","",""); -INSERT INTO `module_i18n` VALUES("28","fr_FR","Livraison en relais Pickup","[[\n

Choisissez la livraison sans contrainte avec les relais Pickup !

\n

Faites-vous livrer dans l’un de nos 5 000 commerces de proximité disponibles sur toute la France. Vous avez la liberté de choisir le commerce qui vous convient le mieux : près de chez vous ou encore près de votre travail, et d’aller y retirer votre colis 7/7 jours (*).

\n

Dès que votre colis est livré dans le relais Pickup préalablement choisi, vous êtes automatiquement prévenus par email ou SMS de sa disponibilité.
\n Si vous ne pouvez pas le récupérer le jour même, pas de souci, votre colis reste disponible jusqu’à 9 jours !

\n

Les relais Pickup par DPD, c’est l’assurance d’une livraison de qualité avec :\n

    \n
  • Une livraison toute France en 24/48 H
  • \n
  • Un choix parmi plus de 5 000 commerces répartis sur toute la France et rigoureusement sélectionnés (situation géographique, capacité de stockage, horaires d’ouverture…)
  • \n
  • Un suivi détaillé (tracing) de votre colis disponible 24/24H sur www.icirelais.com
  • \n
  • Une alerte (email / SMS) dès l’arrivée de votre colis dans le relais Pickup
  • \n
  • Des outils innovants en phase avec la tendance de mobilité : site web adapté aux smartphones
  • \n

\n \n ","Livraison 24/48H parmi 5 000 relais Pickup",""); -INSERT INTO `module_i18n` VALUES("29","en_US","Atos-SIPS payment module","","",""); -INSERT INTO `module_i18n` VALUES("29","fr_FR","Module de paiement Atos-SIPS","","",""); -INSERT INTO `module_i18n` VALUES("30","en_US","Payment recall","Modules for send recall mail if payment failed","",""); -INSERT INTO `module_i18n` VALUES("30","fr_FR","Rappel paiement","Modules pour envoyer un mail de rappel si le paiement as échoué","",""); -INSERT INTO `module_i18n` VALUES("31","en_US","Thelia 1.5.4.x database importation","","",""); -INSERT INTO `module_i18n` VALUES("31","fr_FR","Importation d\'une base de données Thelia 1.5.4.x","","",""); -INSERT INTO `module_i18n` VALUES("32","en_US","Automatically generated module - please update module.xml file","","",""); -INSERT INTO `module_i18n` VALUES("32","fr_FR","Fonctionnalités spécifiques Céline","","",""); - - - -DROP TABLE `module_image`; - -CREATE TABLE `module_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `module_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_module_image_module_id` (`module_id`), - KEY `idx_module_image_module_id_position` (`module_id`,`position`), - CONSTRAINT `fk_module_image_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `module_image` VALUES("1","25","PayPal-1-logo.png","1","1","2017-03-02 15:59:00","2017-03-02 15:59:00"); - - - -DROP TABLE `module_image_i18n`; - -CREATE TABLE `module_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `module_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `module_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `newsletter`; - -CREATE TABLE `newsletter` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `email` varchar(255) NOT NULL, - `firstname` varchar(255) DEFAULT NULL, - `lastname` varchar(255) DEFAULT NULL, - `locale` varchar(5) DEFAULT NULL, - `unsubscribed` tinyint(1) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `email_UNIQUE` (`email`), - KEY `idx_unsubscribed` (`unsubscribed`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order`; - -CREATE TABLE `order` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `ref` varchar(45) DEFAULT NULL, - `customer_id` int(11) NOT NULL, - `invoice_order_address_id` int(11) NOT NULL, - `delivery_order_address_id` int(11) NOT NULL, - `invoice_date` datetime DEFAULT NULL, - `currency_id` int(11) NOT NULL, - `currency_rate` float NOT NULL, - `transaction_ref` varchar(100) DEFAULT NULL COMMENT 'transaction reference - usually use to identify a transaction with banking modules', - `delivery_ref` varchar(100) DEFAULT NULL COMMENT 'delivery reference - usually use to identify a delivery progress on a distant delivery tracker website', - `invoice_ref` varchar(100) DEFAULT NULL COMMENT 'the invoice reference', - `discount` decimal(16,6) DEFAULT '0.000000', - `postage` decimal(16,6) NOT NULL DEFAULT '0.000000', - `postage_tax` decimal(16,6) NOT NULL DEFAULT '0.000000', - `postage_tax_rule_title` varchar(255) DEFAULT NULL, - `payment_module_id` int(11) NOT NULL, - `delivery_module_id` int(11) NOT NULL, - `status_id` int(11) NOT NULL, - `lang_id` int(11) NOT NULL, - `cart_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `idx_order_currency_id` (`currency_id`), - KEY `idx_order_customer_id` (`customer_id`), - KEY `idx_order_invoice_order_address_id` (`invoice_order_address_id`), - KEY `idx_order_delivery_order_address_id` (`delivery_order_address_id`), - KEY `idx_order_status_id` (`status_id`), - KEY `fk_order_payment_module_id_idx` (`payment_module_id`), - KEY `fk_order_delivery_module_id_idx` (`delivery_module_id`), - KEY `fk_order_lang_id_idx` (`lang_id`), - KEY `idx_order_cart_fk` (`cart_id`), - CONSTRAINT `fk_order_currency_id` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`), - CONSTRAINT `fk_order_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`), - CONSTRAINT `fk_order_delivery_module_id` FOREIGN KEY (`delivery_module_id`) REFERENCES `module` (`id`), - CONSTRAINT `fk_order_delivery_order_address_id` FOREIGN KEY (`delivery_order_address_id`) REFERENCES `order_address` (`id`), - CONSTRAINT `fk_order_invoice_order_address_id` FOREIGN KEY (`invoice_order_address_id`) REFERENCES `order_address` (`id`), - CONSTRAINT `fk_order_lang_id` FOREIGN KEY (`lang_id`) REFERENCES `lang` (`id`), - CONSTRAINT `fk_order_payment_module_id` FOREIGN KEY (`payment_module_id`) REFERENCES `module` (`id`), - CONSTRAINT `fk_order_status_id` FOREIGN KEY (`status_id`) REFERENCES `order_status` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8; - -INSERT INTO `order` VALUES("1","ORD000000000001","33","2","1","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:40:18","2017-06-15 16:40:18","1","2017-06-15 16:40:18",""); -INSERT INTO `order` VALUES("2","ORD000000000002","33","4","3","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:49:25","2017-06-15 16:49:25","1","2017-06-15 16:49:25",""); -INSERT INTO `order` VALUES("3","ORD000000000003","33","6","5","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:50:19","2017-06-15 16:50:19","1","2017-06-15 16:50:19",""); -INSERT INTO `order` VALUES("4","ORD000000000004","33","8","7","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:51:00","2017-06-15 16:51:00","1","2017-06-15 16:51:00",""); -INSERT INTO `order` VALUES("5","ORD000000000005","33","10","9","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:28:59","2017-06-15 17:28:59","1","2017-06-15 17:28:59",""); -INSERT INTO `order` VALUES("6","ORD000000000006","33","12","11","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:30:35","2017-06-15 17:30:35","1","2017-06-15 17:30:35",""); -INSERT INTO `order` VALUES("7","ORD000000000007","33","14","13","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:30:57","2017-06-15 17:30:57","1","2017-06-15 17:30:57",""); -INSERT INTO `order` VALUES("8","ORD000000000008","33","16","15","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:31:29","2017-06-15 17:31:29","1","2017-06-15 17:31:29",""); -INSERT INTO `order` VALUES("9","ORD000000000009","33","18","17","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 20:48:27","2017-06-22 20:48:27","1","2017-06-22 20:48:27",""); -INSERT INTO `order` VALUES("10","ORD000000000010","33","20","19","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:08:47","2017-06-22 21:08:47","1","2017-06-22 21:08:47",""); -INSERT INTO `order` VALUES("11","ORD000000000011","33","22","21","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:55:27","2017-06-22 21:55:27","1","2017-06-22 21:55:27",""); -INSERT INTO `order` VALUES("12","ORD000000000012","33","24","23","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:55:59","2017-06-22 21:56:00","1","2017-06-22 21:55:59",""); -INSERT INTO `order` VALUES("13","ORD000000000013","33","26","25","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 22:10:59","2017-06-22 22:10:59","1","2017-06-22 22:10:59",""); -INSERT INTO `order` VALUES("14","ORD000000000014","33","28","27","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 22:12:59","2017-06-22 22:12:59","1","2017-06-22 22:12:59",""); -INSERT INTO `order` VALUES("15","ORD000000000015","33","30","29","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 22:54:37","2017-06-22 22:54:37","1","2017-06-22 22:54:37",""); -INSERT INTO `order` VALUES("16","ORD000000000016","33","32","31","2017-06-22 22:58:38","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","24","2017-06-22 22:58:36","2017-06-22 22:58:38","1","2017-06-22 22:58:36",""); -INSERT INTO `order` VALUES("17","ORD000000000017","33","34","33","2017-06-22 23:00:20","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","24","2017-06-22 23:00:19","2017-06-22 23:00:20","1","2017-06-22 23:00:19",""); -INSERT INTO `order` VALUES("18","ORD000000000018","33","36","35","2017-06-22 23:01:05","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","24","2017-06-22 23:01:04","2017-06-22 23:01:05","1","2017-06-22 23:01:04",""); -INSERT INTO `order` VALUES("19","ORD000000000019","33","38","37","2017-06-24 10:31:25","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","26","2017-06-24 10:31:24","2017-06-24 10:31:25","1","2017-06-24 10:31:24",""); -INSERT INTO `order` VALUES("20","ORD000000000020","33","40","39","2017-06-24 10:36:16","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","26","2017-06-24 10:34:40","2017-06-24 10:36:16","1","2017-06-24 10:34:40",""); -INSERT INTO `order` VALUES("21","ORD000000000021","33","42","41","2017-06-24 10:45:49","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","26","2017-06-24 10:45:43","2017-06-24 10:45:49","1","2017-06-24 10:45:43",""); -INSERT INTO `order` VALUES("22","ORD000000000022","33","44","43","2017-06-25 17:58:30","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 17:58:17","2017-06-25 17:58:30","1","2017-06-25 17:58:17",""); -INSERT INTO `order` VALUES("23","ORD000000000023","33","46","45","2017-06-25 17:59:08","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 17:58:53","2017-06-25 17:59:08","1","2017-06-25 17:58:53",""); -INSERT INTO `order` VALUES("24","ORD000000000024","33","48","47","2017-06-25 20:15:10","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 20:10:25","2017-06-25 20:15:10","1","2017-06-25 20:10:25",""); -INSERT INTO `order` VALUES("25","ORD000000000025","33","50","49","2017-06-25 20:19:22","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 20:18:31","2017-06-25 20:19:22","1","2017-06-25 20:18:31",""); -INSERT INTO `order` VALUES("26","ORD000000000026","33","52","51","2017-06-25 21:59:41","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 21:59:37","2017-06-25 21:59:41","1","2017-06-25 21:59:37",""); -INSERT INTO `order` VALUES("27","ORD000000000027","33","54","53","2017-06-25 22:04:58","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:04:24","2017-06-25 22:04:58","1","2017-06-25 22:04:24",""); -INSERT INTO `order` VALUES("28","ORD000000000028","33","56","55","2017-06-25 22:07:55","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:07:34","2017-06-25 22:07:55","1","2017-06-25 22:07:34",""); -INSERT INTO `order` VALUES("29","ORD000000000029","33","58","57","2017-06-25 22:10:36","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:09:39","2017-06-25 22:10:36","1","2017-06-25 22:09:39",""); -INSERT INTO `order` VALUES("30","ORD000000000030","33","60","59","2017-06-25 22:16:28","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:16:23","2017-06-25 22:16:28","1","2017-06-25 22:16:23",""); -INSERT INTO `order` VALUES("31","ORD000000000031","33","62","61","2017-06-25 22:20:28","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:20:23","2017-06-25 22:20:28","1","2017-06-25 22:20:23",""); -INSERT INTO `order` VALUES("32","ORD000000000032","33","64","63","2017-06-25 22:22:24","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","28","2017-06-25 22:22:21","2017-06-25 22:22:24","1","2017-06-25 22:22:21",""); -INSERT INTO `order` VALUES("33","ORD000000000033","33","66","65","2017-06-26 18:02:09","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 18:02:03","2017-06-26 18:02:09","1","2017-06-26 18:02:03",""); -INSERT INTO `order` VALUES("34","ORD000000000034","33","68","67","2017-06-26 18:02:19","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 18:02:18","2017-06-26 18:02:19","1","2017-06-26 18:02:18",""); -INSERT INTO `order` VALUES("35","ORD000000000035","33","70","69","2017-06-26 18:02:40","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 18:02:39","2017-06-26 18:02:40","1","2017-06-26 18:02:39",""); -INSERT INTO `order` VALUES("36","ORD000000000036","33","72","71","2017-06-26 20:04:00","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 18:12:45","2017-06-26 20:04:00","1","2017-06-26 18:12:45",""); -INSERT INTO `order` VALUES("37","ORD000000000037","33","74","73","2017-06-26 20:05:37","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 20:05:29","2017-06-26 20:05:37","1","2017-06-26 20:05:29",""); -INSERT INTO `order` VALUES("38","ORD000000000038","33","76","75","2017-06-26 20:06:52","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","30","2017-06-26 20:06:45","2017-06-26 20:06:52","1","2017-06-26 20:06:45",""); -INSERT INTO `order` VALUES("39","ORD000000000039","33","78","77","2017-06-27 04:26:17","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","32","2017-06-27 04:26:16","2017-06-27 04:26:17","1","2017-06-27 04:26:16",""); -INSERT INTO `order` VALUES("40","ORD000000000040","33","80","79","2017-06-27 04:27:22","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","32","2017-06-27 04:27:21","2017-06-27 04:27:22","1","2017-06-27 04:27:21",""); -INSERT INTO `order` VALUES("41","ORD000000000041","33","82","81","2017-06-27 04:28:36","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","32","2017-06-27 04:28:34","2017-06-27 04:28:36","1","2017-06-27 04:28:34",""); -INSERT INTO `order` VALUES("42","ORD000000000042","33","84","83","2017-06-27 04:33:11","1","1","","","","0.000000","0.000000","0.000000","","22","27","2","1","32","2017-06-27 04:32:41","2017-06-27 04:33:11","1","2017-06-27 04:32:41",""); -INSERT INTO `order` VALUES("43","ORD000000000043","33","86","85","","1","1","","","","0.000000","0.000000","0.000000","","3","27","1","1","34","2017-06-27 20:01:26","2017-06-27 20:01:26","1","2017-06-27 20:01:26",""); - - - -DROP TABLE `order_address`; - -CREATE TABLE `order_address` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `customer_title_id` int(11) DEFAULT NULL, - `company` varchar(255) DEFAULT NULL, - `firstname` varchar(255) NOT NULL, - `lastname` varchar(255) NOT NULL, - `address1` varchar(255) NOT NULL, - `address2` varchar(255) DEFAULT NULL, - `address3` varchar(255) DEFAULT NULL, - `zipcode` varchar(10) NOT NULL, - `city` varchar(255) NOT NULL, - `phone` varchar(20) DEFAULT NULL, - `cellphone` varchar(20) DEFAULT NULL, - `country_id` int(11) NOT NULL, - `state_id` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `fk_order_address_customer_title_id_idx` (`customer_title_id`), - KEY `fk_order_address_country_id_idx` (`country_id`), - KEY `fk_order_address_state_id_idx` (`state_id`), - CONSTRAINT `fk_order_address_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`), - CONSTRAINT `fk_order_address_customer_title_id` FOREIGN KEY (`customer_title_id`) REFERENCES `customer_title` (`id`), - CONSTRAINT `fk_order_address_state_id` FOREIGN KEY (`state_id`) REFERENCES `state` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `order_address` VALUES("1","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 16:40:18","2017-06-15 16:40:27"); -INSERT INTO `order_address` VALUES("2","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 16:40:18","2017-06-15 16:40:18"); -INSERT INTO `order_address` VALUES("3","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 16:49:24","2017-06-15 16:49:27"); -INSERT INTO `order_address` VALUES("4","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 16:49:24","2017-06-15 16:49:24"); -INSERT INTO `order_address` VALUES("5","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 16:50:19","2017-06-15 16:50:23"); -INSERT INTO `order_address` VALUES("6","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_address` VALUES("7","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 16:51:00","2017-06-15 16:51:01"); -INSERT INTO `order_address` VALUES("8","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 16:51:00","2017-06-15 16:51:00"); -INSERT INTO `order_address` VALUES("9","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_address` VALUES("10","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_address` VALUES("11","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 17:30:35","2017-06-15 17:30:36"); -INSERT INTO `order_address` VALUES("12","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 17:30:35","2017-06-15 17:30:35"); -INSERT INTO `order_address` VALUES("13","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_address` VALUES("14","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_address` VALUES("15","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-15 17:31:29","2017-06-15 17:31:30"); -INSERT INTO `order_address` VALUES("16","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-15 17:31:29","2017-06-15 17:31:29"); -INSERT INTO `order_address` VALUES("17","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 20:48:27","2017-06-22 20:48:28"); -INSERT INTO `order_address` VALUES("18","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 20:48:27","2017-06-22 20:48:27"); -INSERT INTO `order_address` VALUES("19","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 21:08:47","2017-06-22 21:08:56"); -INSERT INTO `order_address` VALUES("20","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 21:08:47","2017-06-22 21:08:47"); -INSERT INTO `order_address` VALUES("21","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_address` VALUES("22","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_address` VALUES("23","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 21:55:59","2017-06-22 21:56:00"); -INSERT INTO `order_address` VALUES("24","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 21:55:59","2017-06-22 21:55:59"); -INSERT INTO `order_address` VALUES("25","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_address` VALUES("26","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_address` VALUES("27","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_address` VALUES("28","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_address` VALUES("29","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 22:54:37","2017-06-22 22:54:38"); -INSERT INTO `order_address` VALUES("30","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 22:54:37","2017-06-22 22:54:37"); -INSERT INTO `order_address` VALUES("31","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 22:58:36","2017-06-22 22:58:37"); -INSERT INTO `order_address` VALUES("32","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 22:58:36","2017-06-22 22:58:36"); -INSERT INTO `order_address` VALUES("33","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 23:00:19","2017-06-22 23:00:20"); -INSERT INTO `order_address` VALUES("34","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_address` VALUES("35","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_address` VALUES("36","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_address` VALUES("37","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_address` VALUES("38","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_address` VALUES("39","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-24 10:34:40","2017-06-24 10:34:41"); -INSERT INTO `order_address` VALUES("40","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-24 10:34:40","2017-06-24 10:34:40"); -INSERT INTO `order_address` VALUES("41","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_address` VALUES("42","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_address` VALUES("43","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 17:58:17","2017-06-25 17:58:18"); -INSERT INTO `order_address` VALUES("44","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 17:58:17","2017-06-25 17:58:17"); -INSERT INTO `order_address` VALUES("45","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 17:58:53","2017-06-25 17:58:54"); -INSERT INTO `order_address` VALUES("46","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 17:58:53","2017-06-25 17:58:53"); -INSERT INTO `order_address` VALUES("47","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 20:10:25","2017-06-25 20:10:26"); -INSERT INTO `order_address` VALUES("48","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 20:10:25","2017-06-25 20:10:25"); -INSERT INTO `order_address` VALUES("49","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_address` VALUES("50","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_address` VALUES("51","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_address` VALUES("52","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_address` VALUES("53","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:04:24","2017-06-25 22:04:25"); -INSERT INTO `order_address` VALUES("54","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_address` VALUES("55","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_address` VALUES("56","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_address` VALUES("57","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:09:39","2017-06-25 22:09:40"); -INSERT INTO `order_address` VALUES("58","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:09:39","2017-06-25 22:09:39"); -INSERT INTO `order_address` VALUES("59","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_address` VALUES("60","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_address` VALUES("61","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:20:23","2017-06-25 22:20:24"); -INSERT INTO `order_address` VALUES("62","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_address` VALUES("63","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_address` VALUES("64","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_address` VALUES("65","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 18:02:03","2017-06-26 18:02:06"); -INSERT INTO `order_address` VALUES("66","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 18:02:03","2017-06-26 18:02:03"); -INSERT INTO `order_address` VALUES("67","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 18:02:18","2017-06-26 18:02:19"); -INSERT INTO `order_address` VALUES("68","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 18:02:18","2017-06-26 18:02:18"); -INSERT INTO `order_address` VALUES("69","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_address` VALUES("70","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_address` VALUES("71","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_address` VALUES("72","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_address` VALUES("73","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 20:05:29","2017-06-26 20:05:30"); -INSERT INTO `order_address` VALUES("74","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 20:05:29","2017-06-26 20:05:29"); -INSERT INTO `order_address` VALUES("75","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-26 20:06:45","2017-06-26 20:06:46"); -INSERT INTO `order_address` VALUES("76","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-26 20:06:45","2017-06-26 20:06:45"); -INSERT INTO `order_address` VALUES("77","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_address` VALUES("78","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_address` VALUES("79","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 04:27:21","2017-06-27 04:27:22"); -INSERT INTO `order_address` VALUES("80","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 04:27:21","2017-06-27 04:27:21"); -INSERT INTO `order_address` VALUES("81","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 04:28:34","2017-06-27 04:28:35"); -INSERT INTO `order_address` VALUES("82","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 04:28:34","2017-06-27 04:28:34"); -INSERT INTO `order_address` VALUES("83","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 04:32:41","2017-06-27 04:32:45"); -INSERT INTO `order_address` VALUES("84","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 04:32:41","2017-06-27 04:32:41"); -INSERT INTO `order_address` VALUES("85","1","La boutique de Fanny","Laurent","LE CORRE","26 chemin de Marragon","","","31600","MURET","","0605040302","64","","2017-06-27 20:01:26","2017-06-27 20:01:26"); -INSERT INTO `order_address` VALUES("86","1","","Laurent","LE CORRE","5 rue des Crouzettes","","","31120","PORTET-SUR-GARONNE","","0605040302","64","","2017-06-27 20:01:26","2017-06-27 20:01:26"); - - - -DROP TABLE `order_address_icirelais`; - -CREATE TABLE `order_address_icirelais` ( - `id` int(11) NOT NULL, - `code` varchar(10) NOT NULL, - PRIMARY KEY (`id`), - CONSTRAINT `fk_order_address_icirelais_order_address_id` FOREIGN KEY (`id`) REFERENCES `order_address` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order_coupon`; - -CREATE TABLE `order_coupon` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_id` int(11) NOT NULL, - `code` varchar(45) NOT NULL, - `type` varchar(255) NOT NULL, - `amount` decimal(16,6) NOT NULL DEFAULT '0.000000', - `title` varchar(255) NOT NULL, - `short_description` text NOT NULL, - `description` longtext NOT NULL, - `start_date` datetime DEFAULT NULL, - `expiration_date` datetime NOT NULL, - `is_cumulative` tinyint(1) NOT NULL, - `is_removing_postage` tinyint(1) NOT NULL, - `is_available_on_special_offers` tinyint(1) NOT NULL, - `serialized_conditions` text NOT NULL, - `per_customer_usage_count` tinyint(1) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_order_coupon_order_id` (`order_id`), - CONSTRAINT `fk_order_coupon_order_id` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order_coupon_country`; - -CREATE TABLE `order_coupon_country` ( - `coupon_id` int(11) NOT NULL, - `country_id` int(11) NOT NULL, - PRIMARY KEY (`coupon_id`,`country_id`), - KEY `fk_country_id_idx` (`country_id`), - CONSTRAINT `fk_order_coupon_country_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_order_coupon_country_coupon_id` FOREIGN KEY (`coupon_id`) REFERENCES `order_coupon` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order_coupon_module`; - -CREATE TABLE `order_coupon_module` ( - `coupon_id` int(11) NOT NULL, - `module_id` int(11) NOT NULL, - PRIMARY KEY (`coupon_id`,`module_id`), - KEY `fk_module_id_idx` (`module_id`), - CONSTRAINT `fk_coupon_module_coupon_id0` FOREIGN KEY (`coupon_id`) REFERENCES `order_coupon` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_coupon_module_module_id0` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `order_product`; - -CREATE TABLE `order_product` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_id` int(11) NOT NULL, - `product_ref` varchar(255) NOT NULL, - `product_sale_elements_ref` varchar(255) NOT NULL, - `product_sale_elements_id` int(11) DEFAULT NULL, - `title` varchar(255) DEFAULT NULL, - `chapo` text, - `description` longtext, - `postscriptum` text, - `quantity` float NOT NULL, - `price` decimal(16,6) NOT NULL DEFAULT '0.000000', - `promo_price` decimal(16,6) DEFAULT '0.000000', - `was_new` tinyint(4) NOT NULL, - `was_in_promo` tinyint(4) NOT NULL, - `weight` varchar(45) DEFAULT NULL, - `ean_code` varchar(255) DEFAULT NULL, - `tax_rule_title` varchar(255) DEFAULT NULL, - `tax_rule_description` longtext, - `parent` int(11) DEFAULT NULL COMMENT 'not managed yet', - `virtual` tinyint(4) NOT NULL DEFAULT '0', - `virtual_document` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_order_product_order_id` (`order_id`), - CONSTRAINT `fk_order_product_order_id` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `order_product` VALUES("1","1","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product` VALUES("2","1","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product` VALUES("3","2","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product` VALUES("4","2","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product` VALUES("5","3","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product` VALUES("6","3","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product` VALUES("7","4","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product` VALUES("8","4","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product` VALUES("9","5","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product` VALUES("10","5","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product` VALUES("11","6","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product` VALUES("12","6","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product` VALUES("13","7","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product` VALUES("14","7","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product` VALUES("15","8","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product` VALUES("16","8","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product` VALUES("17","9","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 20:48:27","2017-06-22 20:48:27"); -INSERT INTO `order_product` VALUES("18","9","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product` VALUES("19","10","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 21:08:47","2017-06-22 21:08:47"); -INSERT INTO `order_product` VALUES("20","10","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 21:08:48","2017-06-22 21:08:48"); -INSERT INTO `order_product` VALUES("21","11","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product` VALUES("22","11","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product` VALUES("23","12","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product` VALUES("24","12","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product` VALUES("25","13","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product` VALUES("26","13","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product` VALUES("27","14","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product` VALUES("28","14","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product` VALUES("29","15","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 22:54:37","2017-06-22 22:54:37"); -INSERT INTO `order_product` VALUES("30","15","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 22:54:38","2017-06-22 22:54:38"); -INSERT INTO `order_product` VALUES("31","16","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product` VALUES("32","16","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product` VALUES("33","17","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product` VALUES("34","17","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product` VALUES("35","18","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product` VALUES("36","18","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product` VALUES("37","19","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product` VALUES("38","19","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product` VALUES("39","20","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product` VALUES("40","20","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product` VALUES("41","21","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product` VALUES("42","21","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product` VALUES("43","22","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product` VALUES("44","22","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product` VALUES("45","23","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 17:58:53","2017-06-25 17:58:53"); -INSERT INTO `order_product` VALUES("46","23","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product` VALUES("47","24","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product` VALUES("48","24","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product` VALUES("49","25","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product` VALUES("50","25","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product` VALUES("51","26","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product` VALUES("52","26","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product` VALUES("53","27","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product` VALUES("54","27","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product` VALUES("55","28","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product` VALUES("56","28","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product` VALUES("57","29","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product` VALUES("58","29","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product` VALUES("59","30","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product` VALUES("60","30","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product` VALUES("61","31","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product` VALUES("62","31","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product` VALUES("63","32","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product` VALUES("64","32","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product` VALUES("65","33","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 18:02:05","2017-06-26 18:02:05"); -INSERT INTO `order_product` VALUES("66","33","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 18:02:06","2017-06-26 18:02:06"); -INSERT INTO `order_product` VALUES("67","34","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 18:02:18","2017-06-26 18:02:18"); -INSERT INTO `order_product` VALUES("68","34","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 18:02:19","2017-06-26 18:02:19"); -INSERT INTO `order_product` VALUES("69","35","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product` VALUES("70","35","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product` VALUES("71","36","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product` VALUES("72","36","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product` VALUES("73","37","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product` VALUES("74","37","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product` VALUES("75","38","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product` VALUES("76","38","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product` VALUES("77","39","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product` VALUES("78","39","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product` VALUES("79","40","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product` VALUES("80","40","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product` VALUES("81","41","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product` VALUES("82","41","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product` VALUES("83","42","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 04:32:42","2017-06-27 04:32:42"); -INSERT INTO `order_product` VALUES("84","42","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 04:32:43","2017-06-27 04:32:43"); -INSERT INTO `order_product` VALUES("85","43","Blettes","Blettes","7","Blettes","","","","300","0.010000","0.000000","0","0","100","","TVA française à 20%","","","0","","2017-06-27 20:01:26","2017-06-27 20:01:26"); -INSERT INTO `order_product` VALUES("86","43","Blettes","Blettes","6","Blettes","","","","1","0.083333","0.000000","0","0","0.08","","TVA française à 20%","","","0","","2017-06-27 20:01:26","2017-06-27 20:01:26"); - - - -DROP TABLE `order_product_attribute_combination`; - -CREATE TABLE `order_product_attribute_combination` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_product_id` int(11) NOT NULL, - `attribute_title` varchar(255) NOT NULL, - `attribute_chapo` text, - `attribute_description` longtext, - `attribute_postscriptum` text, - `attribute_av_title` varchar(255) NOT NULL, - `attribute_av_chapo` text, - `attribute_av_description` longtext, - `attribute_av_postscriptum` text, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_order_product_attribute_combination_order_product_id` (`order_product_id`), - CONSTRAINT `fk_order_product_attribute_combination_order_product_id` FOREIGN KEY (`order_product_id`) REFERENCES `order_product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `order_product_attribute_combination` VALUES("1","1","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product_attribute_combination` VALUES("2","2","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product_attribute_combination` VALUES("3","3","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product_attribute_combination` VALUES("4","4","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product_attribute_combination` VALUES("5","5","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product_attribute_combination` VALUES("6","6","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product_attribute_combination` VALUES("7","7","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product_attribute_combination` VALUES("8","8","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product_attribute_combination` VALUES("9","9","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product_attribute_combination` VALUES("10","10","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product_attribute_combination` VALUES("11","11","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product_attribute_combination` VALUES("12","12","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product_attribute_combination` VALUES("13","13","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product_attribute_combination` VALUES("14","14","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product_attribute_combination` VALUES("15","15","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product_attribute_combination` VALUES("16","16","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product_attribute_combination` VALUES("17","17","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product_attribute_combination` VALUES("18","18","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product_attribute_combination` VALUES("19","19","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 21:08:47","2017-06-22 21:08:47"); -INSERT INTO `order_product_attribute_combination` VALUES("20","20","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 21:08:48","2017-06-22 21:08:48"); -INSERT INTO `order_product_attribute_combination` VALUES("21","21","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product_attribute_combination` VALUES("22","22","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product_attribute_combination` VALUES("23","23","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product_attribute_combination` VALUES("24","24","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product_attribute_combination` VALUES("25","25","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product_attribute_combination` VALUES("26","26","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product_attribute_combination` VALUES("27","27","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product_attribute_combination` VALUES("28","28","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product_attribute_combination` VALUES("29","29","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 22:54:38","2017-06-22 22:54:38"); -INSERT INTO `order_product_attribute_combination` VALUES("30","30","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 22:54:38","2017-06-22 22:54:38"); -INSERT INTO `order_product_attribute_combination` VALUES("31","31","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product_attribute_combination` VALUES("32","32","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product_attribute_combination` VALUES("33","33","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product_attribute_combination` VALUES("34","34","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product_attribute_combination` VALUES("35","35","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product_attribute_combination` VALUES("36","36","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product_attribute_combination` VALUES("37","37","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product_attribute_combination` VALUES("38","38","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product_attribute_combination` VALUES("39","39","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product_attribute_combination` VALUES("40","40","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product_attribute_combination` VALUES("41","41","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product_attribute_combination` VALUES("42","42","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product_attribute_combination` VALUES("43","43","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product_attribute_combination` VALUES("44","44","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product_attribute_combination` VALUES("45","45","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product_attribute_combination` VALUES("46","46","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product_attribute_combination` VALUES("47","47","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product_attribute_combination` VALUES("48","48","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product_attribute_combination` VALUES("49","49","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product_attribute_combination` VALUES("50","50","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product_attribute_combination` VALUES("51","51","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product_attribute_combination` VALUES("52","52","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product_attribute_combination` VALUES("53","53","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product_attribute_combination` VALUES("54","54","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product_attribute_combination` VALUES("55","55","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product_attribute_combination` VALUES("56","56","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product_attribute_combination` VALUES("57","57","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product_attribute_combination` VALUES("58","58","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product_attribute_combination` VALUES("59","59","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product_attribute_combination` VALUES("60","60","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product_attribute_combination` VALUES("61","61","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product_attribute_combination` VALUES("62","62","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product_attribute_combination` VALUES("63","63","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product_attribute_combination` VALUES("64","64","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product_attribute_combination` VALUES("65","65","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 18:02:06","2017-06-26 18:02:06"); -INSERT INTO `order_product_attribute_combination` VALUES("66","66","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 18:02:06","2017-06-26 18:02:06"); -INSERT INTO `order_product_attribute_combination` VALUES("67","67","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 18:02:19","2017-06-26 18:02:19"); -INSERT INTO `order_product_attribute_combination` VALUES("68","68","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 18:02:19","2017-06-26 18:02:19"); -INSERT INTO `order_product_attribute_combination` VALUES("69","69","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product_attribute_combination` VALUES("70","70","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product_attribute_combination` VALUES("71","71","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product_attribute_combination` VALUES("72","72","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product_attribute_combination` VALUES("73","73","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product_attribute_combination` VALUES("74","74","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product_attribute_combination` VALUES("75","75","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product_attribute_combination` VALUES("76","76","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product_attribute_combination` VALUES("77","77","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product_attribute_combination` VALUES("78","78","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product_attribute_combination` VALUES("79","79","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product_attribute_combination` VALUES("80","80","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product_attribute_combination` VALUES("81","81","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product_attribute_combination` VALUES("82","82","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product_attribute_combination` VALUES("83","83","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 04:32:43","2017-06-27 04:32:43"); -INSERT INTO `order_product_attribute_combination` VALUES("84","84","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 04:32:43","2017-06-27 04:32:43"); -INSERT INTO `order_product_attribute_combination` VALUES("85","85","Au poids","Artices vendus au poids","","","Au poids","","","","2017-06-27 20:01:26","2017-06-27 20:01:26"); -INSERT INTO `order_product_attribute_combination` VALUES("86","86","A la pièce","Articles vendus à la pièce","","","A la pièce","","","","2017-06-27 20:01:26","2017-06-27 20:01:26"); - - - -DROP TABLE `order_product_tax`; - -CREATE TABLE `order_product_tax` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_product_id` int(11) NOT NULL, - `title` varchar(255) NOT NULL, - `description` longtext, - `amount` decimal(16,6) NOT NULL DEFAULT '0.000000', - `promo_amount` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_ order_product_tax_order_product_id` (`order_product_id`), - CONSTRAINT `fk_ order_product_tax_order_product_id0` FOREIGN KEY (`order_product_id`) REFERENCES `order_product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8; - -INSERT INTO `order_product_tax` VALUES("1","1","TVA française à 20%","","0.002000","0.000000","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product_tax` VALUES("2","2","TVA française à 20%","","0.016667","0.000000","2017-06-15 16:40:19","2017-06-15 16:40:19"); -INSERT INTO `order_product_tax` VALUES("3","3","TVA française à 20%","","0.002000","0.000000","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product_tax` VALUES("4","4","TVA française à 20%","","0.016667","0.000000","2017-06-15 16:49:25","2017-06-15 16:49:25"); -INSERT INTO `order_product_tax` VALUES("5","5","TVA française à 20%","","0.002000","0.000000","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product_tax` VALUES("6","6","TVA française à 20%","","0.016667","0.000000","2017-06-15 16:50:19","2017-06-15 16:50:19"); -INSERT INTO `order_product_tax` VALUES("7","7","TVA française à 20%","","0.002000","0.000000","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product_tax` VALUES("8","8","TVA française à 20%","","0.016667","0.000000","2017-06-15 16:51:01","2017-06-15 16:51:01"); -INSERT INTO `order_product_tax` VALUES("9","9","TVA française à 20%","","0.002000","0.000000","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product_tax` VALUES("10","10","TVA française à 20%","","0.016667","0.000000","2017-06-15 17:28:59","2017-06-15 17:28:59"); -INSERT INTO `order_product_tax` VALUES("11","11","TVA française à 20%","","0.002000","0.000000","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product_tax` VALUES("12","12","TVA française à 20%","","0.016667","0.000000","2017-06-15 17:30:36","2017-06-15 17:30:36"); -INSERT INTO `order_product_tax` VALUES("13","13","TVA française à 20%","","0.002000","0.000000","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product_tax` VALUES("14","14","TVA française à 20%","","0.016667","0.000000","2017-06-15 17:30:57","2017-06-15 17:30:57"); -INSERT INTO `order_product_tax` VALUES("15","15","TVA française à 20%","","0.002000","0.000000","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product_tax` VALUES("16","16","TVA française à 20%","","0.016667","0.000000","2017-06-15 17:31:30","2017-06-15 17:31:30"); -INSERT INTO `order_product_tax` VALUES("17","17","TVA française à 20%","","0.002000","0.000000","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product_tax` VALUES("18","18","TVA française à 20%","","0.016667","0.000000","2017-06-22 20:48:28","2017-06-22 20:48:28"); -INSERT INTO `order_product_tax` VALUES("19","19","TVA française à 20%","","0.002000","0.000000","2017-06-22 21:08:47","2017-06-22 21:08:47"); -INSERT INTO `order_product_tax` VALUES("20","20","TVA française à 20%","","0.016667","0.000000","2017-06-22 21:08:48","2017-06-22 21:08:48"); -INSERT INTO `order_product_tax` VALUES("21","21","TVA française à 20%","","0.002000","0.000000","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product_tax` VALUES("22","22","TVA française à 20%","","0.016667","0.000000","2017-06-22 21:55:27","2017-06-22 21:55:27"); -INSERT INTO `order_product_tax` VALUES("23","23","TVA française à 20%","","0.002000","0.000000","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product_tax` VALUES("24","24","TVA française à 20%","","0.016667","0.000000","2017-06-22 21:56:00","2017-06-22 21:56:00"); -INSERT INTO `order_product_tax` VALUES("25","25","TVA française à 20%","","0.002000","0.000000","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product_tax` VALUES("26","26","TVA française à 20%","","0.016667","0.000000","2017-06-22 22:10:59","2017-06-22 22:10:59"); -INSERT INTO `order_product_tax` VALUES("27","27","TVA française à 20%","","0.002000","0.000000","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product_tax` VALUES("28","28","TVA française à 20%","","0.016667","0.000000","2017-06-22 22:12:59","2017-06-22 22:12:59"); -INSERT INTO `order_product_tax` VALUES("29","29","TVA française à 20%","","0.002000","0.000000","2017-06-22 22:54:37","2017-06-22 22:54:37"); -INSERT INTO `order_product_tax` VALUES("30","30","TVA française à 20%","","0.016667","0.000000","2017-06-22 22:54:38","2017-06-22 22:54:38"); -INSERT INTO `order_product_tax` VALUES("31","31","TVA française à 20%","","0.002000","0.000000","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product_tax` VALUES("32","32","TVA française à 20%","","0.016667","0.000000","2017-06-22 22:58:37","2017-06-22 22:58:37"); -INSERT INTO `order_product_tax` VALUES("33","33","TVA française à 20%","","0.002000","0.000000","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product_tax` VALUES("34","34","TVA française à 20%","","0.016667","0.000000","2017-06-22 23:00:19","2017-06-22 23:00:19"); -INSERT INTO `order_product_tax` VALUES("35","35","TVA française à 20%","","0.002000","0.000000","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product_tax` VALUES("36","36","TVA française à 20%","","0.016667","0.000000","2017-06-22 23:01:04","2017-06-22 23:01:04"); -INSERT INTO `order_product_tax` VALUES("37","37","TVA française à 20%","","0.002000","0.000000","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product_tax` VALUES("38","38","TVA française à 20%","","0.016667","0.000000","2017-06-24 10:31:24","2017-06-24 10:31:24"); -INSERT INTO `order_product_tax` VALUES("39","39","TVA française à 20%","","0.002000","0.000000","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product_tax` VALUES("40","40","TVA française à 20%","","0.016667","0.000000","2017-06-24 10:34:41","2017-06-24 10:34:41"); -INSERT INTO `order_product_tax` VALUES("41","41","TVA française à 20%","","0.002000","0.000000","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product_tax` VALUES("42","42","TVA française à 20%","","0.016667","0.000000","2017-06-24 10:45:43","2017-06-24 10:45:43"); -INSERT INTO `order_product_tax` VALUES("43","43","TVA française à 20%","","0.002000","0.000000","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product_tax` VALUES("44","44","TVA française à 20%","","0.016667","0.000000","2017-06-25 17:58:18","2017-06-25 17:58:18"); -INSERT INTO `order_product_tax` VALUES("45","45","TVA française à 20%","","0.002000","0.000000","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product_tax` VALUES("46","46","TVA française à 20%","","0.016667","0.000000","2017-06-25 17:58:54","2017-06-25 17:58:54"); -INSERT INTO `order_product_tax` VALUES("47","47","TVA française à 20%","","0.002000","0.000000","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product_tax` VALUES("48","48","TVA française à 20%","","0.016667","0.000000","2017-06-25 20:10:26","2017-06-25 20:10:26"); -INSERT INTO `order_product_tax` VALUES("49","49","TVA française à 20%","","0.002000","0.000000","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product_tax` VALUES("50","50","TVA française à 20%","","0.016667","0.000000","2017-06-25 20:18:31","2017-06-25 20:18:31"); -INSERT INTO `order_product_tax` VALUES("51","51","TVA française à 20%","","0.002000","0.000000","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product_tax` VALUES("52","52","TVA française à 20%","","0.016667","0.000000","2017-06-25 21:59:37","2017-06-25 21:59:37"); -INSERT INTO `order_product_tax` VALUES("53","53","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product_tax` VALUES("54","54","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:04:24","2017-06-25 22:04:24"); -INSERT INTO `order_product_tax` VALUES("55","55","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product_tax` VALUES("56","56","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:07:34","2017-06-25 22:07:34"); -INSERT INTO `order_product_tax` VALUES("57","57","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product_tax` VALUES("58","58","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:09:40","2017-06-25 22:09:40"); -INSERT INTO `order_product_tax` VALUES("59","59","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product_tax` VALUES("60","60","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:16:23","2017-06-25 22:16:23"); -INSERT INTO `order_product_tax` VALUES("61","61","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product_tax` VALUES("62","62","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:20:23","2017-06-25 22:20:23"); -INSERT INTO `order_product_tax` VALUES("63","63","TVA française à 20%","","0.002000","0.000000","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product_tax` VALUES("64","64","TVA française à 20%","","0.016667","0.000000","2017-06-25 22:22:21","2017-06-25 22:22:21"); -INSERT INTO `order_product_tax` VALUES("65","65","TVA française à 20%","","0.002000","0.000000","2017-06-26 18:02:05","2017-06-26 18:02:05"); -INSERT INTO `order_product_tax` VALUES("66","66","TVA française à 20%","","0.016667","0.000000","2017-06-26 18:02:06","2017-06-26 18:02:06"); -INSERT INTO `order_product_tax` VALUES("67","67","TVA française à 20%","","0.002000","0.000000","2017-06-26 18:02:18","2017-06-26 18:02:18"); -INSERT INTO `order_product_tax` VALUES("68","68","TVA française à 20%","","0.016667","0.000000","2017-06-26 18:02:19","2017-06-26 18:02:19"); -INSERT INTO `order_product_tax` VALUES("69","69","TVA française à 20%","","0.002000","0.000000","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product_tax` VALUES("70","70","TVA française à 20%","","0.016667","0.000000","2017-06-26 18:02:39","2017-06-26 18:02:39"); -INSERT INTO `order_product_tax` VALUES("71","71","TVA française à 20%","","0.002000","0.000000","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product_tax` VALUES("72","72","TVA française à 20%","","0.016667","0.000000","2017-06-26 18:12:45","2017-06-26 18:12:45"); -INSERT INTO `order_product_tax` VALUES("73","73","TVA française à 20%","","0.002000","0.000000","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product_tax` VALUES("74","74","TVA française à 20%","","0.016667","0.000000","2017-06-26 20:05:30","2017-06-26 20:05:30"); -INSERT INTO `order_product_tax` VALUES("75","75","TVA française à 20%","","0.002000","0.000000","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product_tax` VALUES("76","76","TVA française à 20%","","0.016667","0.000000","2017-06-26 20:06:46","2017-06-26 20:06:46"); -INSERT INTO `order_product_tax` VALUES("77","77","TVA française à 20%","","0.002000","0.000000","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product_tax` VALUES("78","78","TVA française à 20%","","0.016667","0.000000","2017-06-27 04:26:16","2017-06-27 04:26:16"); -INSERT INTO `order_product_tax` VALUES("79","79","TVA française à 20%","","0.002000","0.000000","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product_tax` VALUES("80","80","TVA française à 20%","","0.016667","0.000000","2017-06-27 04:27:22","2017-06-27 04:27:22"); -INSERT INTO `order_product_tax` VALUES("81","81","TVA française à 20%","","0.002000","0.000000","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product_tax` VALUES("82","82","TVA française à 20%","","0.016667","0.000000","2017-06-27 04:28:35","2017-06-27 04:28:35"); -INSERT INTO `order_product_tax` VALUES("83","83","TVA française à 20%","","0.002000","0.000000","2017-06-27 04:32:42","2017-06-27 04:32:42"); -INSERT INTO `order_product_tax` VALUES("84","84","TVA française à 20%","","0.016667","0.000000","2017-06-27 04:32:43","2017-06-27 04:32:43"); -INSERT INTO `order_product_tax` VALUES("85","85","TVA française à 20%","","0.002000","0.000000","2017-06-27 20:01:26","2017-06-27 20:01:26"); -INSERT INTO `order_product_tax` VALUES("86","86","TVA française à 20%","","0.016667","0.000000","2017-06-27 20:01:26","2017-06-27 20:01:26"); - - - -DROP TABLE `order_status`; - -CREATE TABLE `order_status` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(45) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; - -INSERT INTO `order_status` VALUES("1","not_paid","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("2","paid","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("3","processing","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("4","sent","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("5","canceled","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `order_status` VALUES("6","refunded","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `order_status_i18n`; - -CREATE TABLE `order_status_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `order_status_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `order_status` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `order_status_i18n` VALUES("1","de_DE","Nicht bezahlt","","",""); -INSERT INTO `order_status_i18n` VALUES("1","en_US","Not paid","","",""); -INSERT INTO `order_status_i18n` VALUES("1","es_ES","No pagados","","",""); -INSERT INTO `order_status_i18n` VALUES("1","fr_FR","Non payée","","",""); -INSERT INTO `order_status_i18n` VALUES("2","de_DE","Bezahlt","","",""); -INSERT INTO `order_status_i18n` VALUES("2","en_US","Paid","","",""); -INSERT INTO `order_status_i18n` VALUES("2","es_ES","Pagado","","",""); -INSERT INTO `order_status_i18n` VALUES("2","fr_FR","Payée","","",""); -INSERT INTO `order_status_i18n` VALUES("3","de_DE","Bearbeitung","","",""); -INSERT INTO `order_status_i18n` VALUES("3","en_US","Processing","","",""); -INSERT INTO `order_status_i18n` VALUES("3","es_ES","Procesando","","",""); -INSERT INTO `order_status_i18n` VALUES("3","fr_FR","Traitement","","",""); -INSERT INTO `order_status_i18n` VALUES("4","de_DE","Gesendet","","",""); -INSERT INTO `order_status_i18n` VALUES("4","en_US","Sent","","",""); -INSERT INTO `order_status_i18n` VALUES("4","es_ES","Enviado","","",""); -INSERT INTO `order_status_i18n` VALUES("4","fr_FR","Envoyée","","",""); -INSERT INTO `order_status_i18n` VALUES("5","de_DE","Storniert","","",""); -INSERT INTO `order_status_i18n` VALUES("5","en_US","Canceled","","",""); -INSERT INTO `order_status_i18n` VALUES("5","es_ES","Cancelado","","",""); -INSERT INTO `order_status_i18n` VALUES("5","fr_FR","Annulée","","",""); -INSERT INTO `order_status_i18n` VALUES("6","de_DE","Zrückerstattet","","",""); -INSERT INTO `order_status_i18n` VALUES("6","en_US","Refunded","","",""); -INSERT INTO `order_status_i18n` VALUES("6","es_ES","Reembolsado","","",""); -INSERT INTO `order_status_i18n` VALUES("6","fr_FR","Remboursé","","",""); - - - -DROP TABLE `order_version`; - -CREATE TABLE `order_version` ( - `id` int(11) NOT NULL, - `ref` varchar(45) DEFAULT NULL, - `customer_id` int(11) NOT NULL, - `invoice_order_address_id` int(11) NOT NULL, - `delivery_order_address_id` int(11) NOT NULL, - `invoice_date` datetime DEFAULT NULL, - `currency_id` int(11) NOT NULL, - `currency_rate` float NOT NULL, - `transaction_ref` varchar(100) DEFAULT NULL COMMENT 'transaction reference - usually use to identify a transaction with banking modules', - `delivery_ref` varchar(100) DEFAULT NULL COMMENT 'delivery reference - usually use to identify a delivery progress on a distant delivery tracker website', - `invoice_ref` varchar(100) DEFAULT NULL COMMENT 'the invoice reference', - `discount` decimal(16,6) DEFAULT '0.000000', - `postage` decimal(16,6) NOT NULL DEFAULT '0.000000', - `postage_tax` decimal(16,6) NOT NULL DEFAULT '0.000000', - `postage_tax_rule_title` varchar(255) DEFAULT NULL, - `payment_module_id` int(11) NOT NULL, - `delivery_module_id` int(11) NOT NULL, - `status_id` int(11) NOT NULL, - `lang_id` int(11) NOT NULL, - `cart_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - `customer_id_version` int(11) DEFAULT '0', - PRIMARY KEY (`id`,`version`), - CONSTRAINT `order_version_FK_1` FOREIGN KEY (`id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `order_version` VALUES("1","ORD000000000001","33","2","1","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:40:18","2017-06-15 16:40:18","1","2017-06-15 16:40:18","","1"); -INSERT INTO `order_version` VALUES("2","ORD000000000002","33","4","3","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:49:25","2017-06-15 16:49:25","1","2017-06-15 16:49:25","","1"); -INSERT INTO `order_version` VALUES("3","ORD000000000003","33","6","5","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:50:19","2017-06-15 16:50:19","1","2017-06-15 16:50:19","","1"); -INSERT INTO `order_version` VALUES("4","ORD000000000004","33","8","7","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 16:51:00","2017-06-15 16:51:00","1","2017-06-15 16:51:00","","1"); -INSERT INTO `order_version` VALUES("5","ORD000000000005","33","10","9","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:28:59","2017-06-15 17:28:59","1","2017-06-15 17:28:59","","1"); -INSERT INTO `order_version` VALUES("6","ORD000000000006","33","12","11","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:30:35","2017-06-15 17:30:35","1","2017-06-15 17:30:35","","1"); -INSERT INTO `order_version` VALUES("7","ORD000000000007","33","14","13","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:30:57","2017-06-15 17:30:57","1","2017-06-15 17:30:57","","1"); -INSERT INTO `order_version` VALUES("8","ORD000000000008","33","16","15","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","20","2017-06-15 17:31:29","2017-06-15 17:31:29","1","2017-06-15 17:31:29","","1"); -INSERT INTO `order_version` VALUES("9","ORD000000000009","33","18","17","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 20:48:27","2017-06-22 20:48:27","1","2017-06-22 20:48:27","","1"); -INSERT INTO `order_version` VALUES("10","ORD000000000010","33","20","19","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:08:47","2017-06-22 21:08:47","1","2017-06-22 21:08:47","","1"); -INSERT INTO `order_version` VALUES("11","ORD000000000011","33","22","21","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:55:27","2017-06-22 21:55:27","1","2017-06-22 21:55:27","","1"); -INSERT INTO `order_version` VALUES("12","ORD000000000012","33","24","23","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 21:55:59","2017-06-22 21:56:00","1","2017-06-22 21:55:59","","1"); -INSERT INTO `order_version` VALUES("13","ORD000000000013","33","26","25","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 22:10:59","2017-06-22 22:10:59","1","2017-06-22 22:10:59","","1"); -INSERT INTO `order_version` VALUES("14","ORD000000000014","33","28","27","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","22","2017-06-22 22:12:59","2017-06-22 22:12:59","1","2017-06-22 22:12:59","","1"); -INSERT INTO `order_version` VALUES("15","ORD000000000015","33","30","29","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 22:54:37","2017-06-22 22:54:37","1","2017-06-22 22:54:37","","1"); -INSERT INTO `order_version` VALUES("16","ORD000000000016","33","32","31","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 22:58:36","2017-06-22 22:58:36","1","2017-06-22 22:58:36","","1"); -INSERT INTO `order_version` VALUES("17","ORD000000000017","33","34","33","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 23:00:19","2017-06-22 23:00:19","1","2017-06-22 23:00:19","","1"); -INSERT INTO `order_version` VALUES("18","ORD000000000018","33","36","35","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","24","2017-06-22 23:01:04","2017-06-22 23:01:04","1","2017-06-22 23:01:04","","1"); -INSERT INTO `order_version` VALUES("19","ORD000000000019","33","38","37","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","26","2017-06-24 10:31:24","2017-06-24 10:31:24","1","2017-06-24 10:31:24","","1"); -INSERT INTO `order_version` VALUES("20","ORD000000000020","33","40","39","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","26","2017-06-24 10:34:40","2017-06-24 10:34:40","1","2017-06-24 10:34:40","","1"); -INSERT INTO `order_version` VALUES("21","ORD000000000021","33","42","41","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","26","2017-06-24 10:45:43","2017-06-24 10:45:43","1","2017-06-24 10:45:43","","1"); -INSERT INTO `order_version` VALUES("22","ORD000000000022","33","44","43","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 17:58:17","2017-06-25 17:58:17","1","2017-06-25 17:58:17","","1"); -INSERT INTO `order_version` VALUES("23","ORD000000000023","33","46","45","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 17:58:53","2017-06-25 17:58:53","1","2017-06-25 17:58:53","","1"); -INSERT INTO `order_version` VALUES("24","ORD000000000024","33","48","47","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 20:10:25","2017-06-25 20:10:25","1","2017-06-25 20:10:25","","1"); -INSERT INTO `order_version` VALUES("25","ORD000000000025","33","50","49","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 20:18:31","2017-06-25 20:18:31","1","2017-06-25 20:18:31","","1"); -INSERT INTO `order_version` VALUES("26","ORD000000000026","33","52","51","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 21:59:37","2017-06-25 21:59:37","1","2017-06-25 21:59:37","","1"); -INSERT INTO `order_version` VALUES("27","ORD000000000027","33","54","53","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:04:24","2017-06-25 22:04:24","1","2017-06-25 22:04:24","","1"); -INSERT INTO `order_version` VALUES("28","ORD000000000028","33","56","55","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:07:34","2017-06-25 22:07:34","1","2017-06-25 22:07:34","","1"); -INSERT INTO `order_version` VALUES("29","ORD000000000029","33","58","57","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:09:39","2017-06-25 22:09:39","1","2017-06-25 22:09:39","","1"); -INSERT INTO `order_version` VALUES("30","ORD000000000030","33","60","59","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:16:23","2017-06-25 22:16:23","1","2017-06-25 22:16:23","","1"); -INSERT INTO `order_version` VALUES("31","ORD000000000031","33","62","61","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:20:23","2017-06-25 22:20:23","1","2017-06-25 22:20:23","","1"); -INSERT INTO `order_version` VALUES("32","ORD000000000032","33","64","63","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","28","2017-06-25 22:22:21","2017-06-25 22:22:21","1","2017-06-25 22:22:21","","1"); -INSERT INTO `order_version` VALUES("33","ORD000000000033","33","66","65","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 18:02:03","2017-06-26 18:02:03","1","2017-06-26 18:02:03","","1"); -INSERT INTO `order_version` VALUES("34","ORD000000000034","33","68","67","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 18:02:18","2017-06-26 18:02:18","1","2017-06-26 18:02:18","","1"); -INSERT INTO `order_version` VALUES("35","ORD000000000035","33","70","69","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 18:02:39","2017-06-26 18:02:39","1","2017-06-26 18:02:39","","1"); -INSERT INTO `order_version` VALUES("36","ORD000000000036","33","72","71","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 18:12:45","2017-06-26 18:12:45","1","2017-06-26 18:12:45","","1"); -INSERT INTO `order_version` VALUES("37","ORD000000000037","33","74","73","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 20:05:29","2017-06-26 20:05:29","1","2017-06-26 20:05:29","","1"); -INSERT INTO `order_version` VALUES("38","ORD000000000038","33","76","75","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","30","2017-06-26 20:06:45","2017-06-26 20:06:45","1","2017-06-26 20:06:45","","1"); -INSERT INTO `order_version` VALUES("39","ORD000000000039","33","78","77","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","32","2017-06-27 04:26:16","2017-06-27 04:26:16","1","2017-06-27 04:26:16","","1"); -INSERT INTO `order_version` VALUES("40","ORD000000000040","33","80","79","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","32","2017-06-27 04:27:21","2017-06-27 04:27:21","1","2017-06-27 04:27:21","","1"); -INSERT INTO `order_version` VALUES("41","ORD000000000041","33","82","81","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","32","2017-06-27 04:28:34","2017-06-27 04:28:34","1","2017-06-27 04:28:34","","1"); -INSERT INTO `order_version` VALUES("42","ORD000000000042","33","84","83","","1","1","","","","0.000000","0.000000","0.000000","","22","27","1","1","32","2017-06-27 04:32:41","2017-06-27 04:32:41","1","2017-06-27 04:32:41","","1"); -INSERT INTO `order_version` VALUES("43","ORD000000000043","33","86","85","","1","1","","","","0.000000","0.000000","0.000000","","3","27","1","1","34","2017-06-27 20:01:26","2017-06-27 20:01:26","1","2017-06-27 20:01:26","","1"); - - - -DROP TABLE `payment_recall_module`; - -CREATE TABLE `payment_recall_module` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `module_id` int(11) NOT NULL, - `enable` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - KEY `FI_paymentrecall_module_module` (`module_id`), - CONSTRAINT `fk_paymentrecall_module_module` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `payment_recall_order`; - -CREATE TABLE `payment_recall_order` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `order_id` int(11) NOT NULL, - `customer_id` int(11) NOT NULL, - `recall_send` tinyint(1) NOT NULL, - PRIMARY KEY (`id`), - KEY `FI_paymentrecall_order_order` (`order_id`), - KEY `FI_paymentrecall_order_customer` (`customer_id`), - CONSTRAINT `fk_paymentrecall_order_customer` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`), - CONSTRAINT `fk_paymentrecall_order_order` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_cart`; - -CREATE TABLE `paypal_cart` ( - `id` int(11) NOT NULL, - `credit_card_id` varchar(40) DEFAULT NULL, - `planified_payment_id` int(11) DEFAULT NULL, - `express_payment_id` varchar(255) DEFAULT NULL, - `express_payer_id` varchar(255) DEFAULT NULL, - `express_token` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `FI_paypal_cart_planified_payment_id` (`planified_payment_id`), - CONSTRAINT `fk_paypal_cart_cart_id` FOREIGN KEY (`id`) REFERENCES `cart` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_paypal_cart_planified_payment_id` FOREIGN KEY (`planified_payment_id`) REFERENCES `paypal_planified_payment` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_customer`; - -CREATE TABLE `paypal_customer` ( - `id` int(11) NOT NULL, - `paypal_user_id` int(11) NOT NULL, - `credit_card_id` varchar(40) DEFAULT NULL, - `name` varchar(255) DEFAULT NULL, - `given_name` varchar(255) DEFAULT NULL, - `family_name` varchar(255) DEFAULT NULL, - `middle_name` varchar(255) DEFAULT NULL, - `picture` varchar(255) DEFAULT NULL, - `email_verified` tinyint(4) DEFAULT NULL, - `gender` varchar(255) DEFAULT NULL, - `birthday` varchar(255) DEFAULT NULL, - `zoneinfo` varchar(255) DEFAULT NULL, - `locale` varchar(255) DEFAULT NULL, - `language` varchar(255) DEFAULT NULL, - `verified` tinyint(4) DEFAULT NULL, - `phone_number` varchar(255) DEFAULT NULL, - `verified_account` varchar(255) DEFAULT NULL, - `account_type` varchar(255) DEFAULT NULL, - `age_range` varchar(255) DEFAULT NULL, - `payer_id` varchar(255) DEFAULT NULL, - `postal_code` varchar(255) DEFAULT NULL, - `locality` varchar(255) DEFAULT NULL, - `region` varchar(255) DEFAULT NULL, - `country` varchar(255) DEFAULT NULL, - `street_address` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`,`paypal_user_id`), - CONSTRAINT `fk_paypal_payer_customer_id` FOREIGN KEY (`id`) REFERENCES `customer` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_log`; - -CREATE TABLE `paypal_log` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `customer_id` int(11) DEFAULT NULL, - `order_id` int(11) DEFAULT NULL, - `hook` varchar(255) DEFAULT NULL, - `channel` varchar(255) DEFAULT NULL, - `level` int(11) DEFAULT NULL, - `message` longtext, - `time` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `FI_paypal_log_customer_id` (`customer_id`), - KEY `FI_paypal_log_order_id` (`order_id`), - CONSTRAINT `fk_paypal_log_customer_id` FOREIGN KEY (`customer_id`) REFERENCES `customer` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_paypal_log_order_id` FOREIGN KEY (`order_id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_order`; - -CREATE TABLE `paypal_order` ( - `id` int(11) NOT NULL, - `payment_id` varchar(50) DEFAULT NULL, - `agreement_id` varchar(255) DEFAULT NULL, - `credit_card_id` varchar(40) DEFAULT NULL, - `state` varchar(20) DEFAULT NULL, - `amount` decimal(16,6) DEFAULT '0.000000', - `description` longtext, - `payer_id` varchar(255) DEFAULT NULL, - `token` varchar(255) DEFAULT NULL, - `planified_title` varchar(255) NOT NULL, - `planified_description` longtext, - `planified_frequency` varchar(255) NOT NULL, - `planified_frequency_interval` int(11) NOT NULL, - `planified_cycle` int(11) NOT NULL, - `planified_actual_cycle` int(11) NOT NULL DEFAULT '0', - `planified_min_amount` decimal(16,6) DEFAULT '0.000000', - `planified_max_amount` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - CONSTRAINT `fk_paypal_order_order_id` FOREIGN KEY (`id`) REFERENCES `order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_order_version`; - -CREATE TABLE `paypal_order_version` ( - `id` int(11) NOT NULL, - `payment_id` varchar(50) DEFAULT NULL, - `agreement_id` varchar(255) DEFAULT NULL, - `credit_card_id` varchar(40) DEFAULT NULL, - `state` varchar(20) DEFAULT NULL, - `amount` decimal(16,6) DEFAULT '0.000000', - `description` longtext, - `payer_id` varchar(255) DEFAULT NULL, - `token` varchar(255) DEFAULT NULL, - `planified_title` varchar(255) NOT NULL, - `planified_description` longtext, - `planified_frequency` varchar(255) NOT NULL, - `planified_frequency_interval` int(11) NOT NULL, - `planified_cycle` int(11) NOT NULL, - `planified_actual_cycle` int(11) NOT NULL DEFAULT '0', - `planified_min_amount` decimal(16,6) DEFAULT '0.000000', - `planified_max_amount` decimal(16,6) DEFAULT '0.000000', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - `id_version` int(11) DEFAULT '0', - PRIMARY KEY (`id`,`version`), - CONSTRAINT `paypal_order_version_FK_1` FOREIGN KEY (`id`) REFERENCES `paypal_order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_plan`; - -CREATE TABLE `paypal_plan` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `paypal_order_id` int(11) NOT NULL, - `plan_id` varchar(255) DEFAULT NULL, - `state` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `FI_paypal_plan_paypal_order_id` (`paypal_order_id`), - CONSTRAINT `fk_paypal_plan_paypal_order_id` FOREIGN KEY (`paypal_order_id`) REFERENCES `paypal_order` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_planified_payment`; - -CREATE TABLE `paypal_planified_payment` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `frequency` varchar(255) NOT NULL, - `frequency_interval` int(11) NOT NULL, - `cycle` int(11) NOT NULL, - `min_amount` decimal(16,6) DEFAULT '0.000000', - `max_amount` decimal(16,6) DEFAULT '0.000000', - `position` int(11) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `paypal_planified_payment_i18n`; - -CREATE TABLE `paypal_planified_payment_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) NOT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `paypal_planified_payment_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `paypal_planified_payment` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product`; - -CREATE TABLE `product` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `tax_rule_id` int(11) DEFAULT NULL, - `ref` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '0', - `position` int(11) NOT NULL DEFAULT '0', - `template_id` int(11) DEFAULT NULL, - `brand_id` int(11) DEFAULT NULL, - `virtual` tinyint(4) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `ref_UNIQUE` (`ref`), - KEY `idx_product_tax_rule_id` (`tax_rule_id`), - KEY `fk_product_template_id` (`template_id`), - KEY `fk_product_brand1_idx` (`brand_id`), - CONSTRAINT `fk_product_brand` FOREIGN KEY (`brand_id`) REFERENCES `brand` (`id`) ON DELETE SET NULL, - CONSTRAINT `fk_product_tax_rule_id` FOREIGN KEY (`tax_rule_id`) REFERENCES `tax_rule` (`id`), - CONSTRAINT `fk_product_template` FOREIGN KEY (`template_id`) REFERENCES `template` (`id`) ON DELETE SET NULL -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; - -INSERT INTO `product` VALUES("1","1","Citron","1","1","1","","0","2017-05-11 19:42:45","2017-05-11 20:46:35","3","2017-05-11 20:46:35",""); -INSERT INTO `product` VALUES("2","1","Blettes","1","1","3","","0","2017-05-23 12:46:29","2017-05-23 12:46:29","2","2017-05-23 12:46:29",""); - - - -DROP TABLE `product_associated_content`; - -CREATE TABLE `product_associated_content` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `content_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_product_associated_content_product_id` (`product_id`), - KEY `idx_product_associated_content_content_id` (`content_id`), - CONSTRAINT `fk_product_associated_content_content_id` FOREIGN KEY (`content_id`) REFERENCES `content` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_product_associated_content_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_category`; - -CREATE TABLE `product_category` ( - `product_id` int(11) NOT NULL, - `category_id` int(11) NOT NULL, - `default_category` tinyint(1) DEFAULT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`product_id`,`category_id`), - KEY `idx_product_has_category_category1` (`category_id`), - KEY `idx_product_has_category_product1` (`product_id`), - KEY `idx_product_has_category_default` (`default_category`), - CONSTRAINT `fk_product_has_category_category1` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_product_has_category_product1` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_category` VALUES("1","3","1","1","2017-05-11 19:42:45","2017-05-11 19:42:45"); -INSERT INTO `product_category` VALUES("2","11","1","1","2017-05-23 12:46:29","2017-05-23 12:46:29"); - - - -DROP TABLE `product_document`; - -CREATE TABLE `product_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_product_document_product_id` (`product_id`), - CONSTRAINT `fk_product_document_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_document_i18n`; - -CREATE TABLE `product_document_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `product_document_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `product_document` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_i18n`; - -CREATE TABLE `product_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `meta_title` varchar(255) DEFAULT NULL, - `meta_description` text, - `meta_keywords` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `product_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_i18n` VALUES("1","fr_FR","Crème de citron","","","","","",""); -INSERT INTO `product_i18n` VALUES("2","fr_FR","Blettes","","","","","",""); - - - -DROP TABLE `product_image`; - -CREATE TABLE `product_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `file` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '1', - `position` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_product_image_product_id` (`product_id`), - KEY `idx_product_image_product_id_position` (`product_id`,`position`), - CONSTRAINT `fk_product_image_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `product_image` VALUES("1","1","cremecitron_1-1.jpg","1","1","2017-05-11 20:42:19","2017-05-11 20:42:19"); - - - -DROP TABLE `product_image_i18n`; - -CREATE TABLE `product_image_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `product_image_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `product_image` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_image_i18n` VALUES("1","fr_FR","","","",""); - - - -DROP TABLE `product_price`; - -CREATE TABLE `product_price` ( - `product_sale_elements_id` int(11) NOT NULL, - `currency_id` int(11) NOT NULL, - `price` decimal(16,6) NOT NULL DEFAULT '0.000000', - `promo_price` decimal(16,6) NOT NULL DEFAULT '0.000000', - `from_default_currency` tinyint(1) NOT NULL DEFAULT '1', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`product_sale_elements_id`,`currency_id`), - KEY `idx_product_price_product_sale_elements_id` (`product_sale_elements_id`), - KEY `idx_product_price_currency_id` (`currency_id`), - CONSTRAINT `fk_product_price_currency_id` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_product_price_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_price` VALUES("1","1","4.166667","4.166667","0","2017-05-11 19:42:45","2017-05-11 19:42:45"); -INSERT INTO `product_price` VALUES("6","1","0.083333","0.000000","0","2017-05-28 09:59:01","2017-06-04 10:43:12"); -INSERT INTO `product_price` VALUES("7","1","0.010000","0.000000","0","2017-05-28 09:59:40","2017-06-04 10:43:12"); - - - -DROP TABLE `product_sale_elements`; - -CREATE TABLE `product_sale_elements` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_id` int(11) NOT NULL, - `ref` varchar(255) NOT NULL, - `quantity` float NOT NULL, - `promo` tinyint(4) DEFAULT '0', - `newness` tinyint(4) DEFAULT '0', - `weight` float DEFAULT '0', - `is_default` tinyint(1) DEFAULT '0', - `ean_code` varchar(255) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_product_sale_element_product_id` (`product_id`), - KEY `ref` (`ref`), - KEY `idx_product_elements_product_id_promo_is_default` (`product_id`,`promo`,`is_default`), - CONSTRAINT `fk_product_sale_element_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; - -INSERT INTO `product_sale_elements` VALUES("1","1","Citron","5","0","0","0.25","1","","2017-05-11 19:42:45","2017-05-11 20:46:35"); -INSERT INTO `product_sale_elements` VALUES("6","2","Blettes","73","0","0","0.08","1","","2017-05-28 09:59:01","2017-06-27 04:33:11"); -INSERT INTO `product_sale_elements` VALUES("7","2","Blettes","1900","0","0","100","0","","2017-05-28 09:59:40","2017-06-27 04:33:11"); - - - -DROP TABLE `product_sale_elements_product_document`; - -CREATE TABLE `product_sale_elements_product_document` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_sale_elements_id` int(11) NOT NULL, - `product_document_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `fk_pse_product_document_product_document__idx` (`product_document_id`), - KEY `fk_pse_product_document_product_sale_elem_idx` (`product_sale_elements_id`), - CONSTRAINT `fk_pse_product_document_product_document_id` FOREIGN KEY (`product_document_id`) REFERENCES `product_document` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_pse_product_document_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_sale_elements_product_image`; - -CREATE TABLE `product_sale_elements_product_image` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `product_sale_elements_id` int(11) NOT NULL, - `product_image_id` int(11) NOT NULL, - PRIMARY KEY (`id`), - KEY `fk_pse_product_image_product_image_id_idx` (`product_image_id`), - KEY `fk_pse_product_image_product_sale_element_idx` (`product_sale_elements_id`), - CONSTRAINT `fk_pse_product_image_product_image_id` FOREIGN KEY (`product_image_id`) REFERENCES `product_image` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_pse_product_image_product_sale_elements_id` FOREIGN KEY (`product_sale_elements_id`) REFERENCES `product_sale_elements` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `product_version`; - -CREATE TABLE `product_version` ( - `id` int(11) NOT NULL, - `tax_rule_id` int(11) DEFAULT NULL, - `ref` varchar(255) NOT NULL, - `visible` tinyint(4) NOT NULL DEFAULT '0', - `position` int(11) NOT NULL DEFAULT '0', - `template_id` int(11) DEFAULT NULL, - `brand_id` int(11) DEFAULT NULL, - `virtual` tinyint(4) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - `version` int(11) NOT NULL DEFAULT '0', - `version_created_at` datetime DEFAULT NULL, - `version_created_by` varchar(100) DEFAULT NULL, - PRIMARY KEY (`id`,`version`), - CONSTRAINT `product_version_FK_1` FOREIGN KEY (`id`) REFERENCES `product` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `product_version` VALUES("1","1","Crème de citron","1","0","1","","0","2017-05-11 19:42:45","2017-05-11 19:42:45","1","2017-05-11 19:42:45",""); -INSERT INTO `product_version` VALUES("1","1","Crème de citron","1","1","1","","0","2017-05-11 19:42:45","2017-05-11 19:42:45","2","2017-05-11 19:42:45",""); -INSERT INTO `product_version` VALUES("1","1","Citron","1","1","1","","0","2017-05-11 19:42:45","2017-05-11 20:46:35","3","2017-05-11 20:46:35",""); -INSERT INTO `product_version` VALUES("2","1","Blettes","1","0","3","","0","2017-05-23 12:46:29","2017-05-23 12:46:29","1","2017-05-23 12:46:29",""); -INSERT INTO `product_version` VALUES("2","1","Blettes","1","1","3","","0","2017-05-23 12:46:29","2017-05-23 12:46:29","2","2017-05-23 12:46:29",""); - - - -DROP TABLE `profile`; - -CREATE TABLE `profile` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(30) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `profile` VALUES("1","Gestion stock","2017-05-11 17:06:16","2017-05-11 17:06:16"); - - - -DROP TABLE `profile_i18n`; - -CREATE TABLE `profile_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `profile_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `profile` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `profile_i18n` VALUES("1","fr_FR","Gestion stock","","",""); - - - -DROP TABLE `profile_module`; - -CREATE TABLE `profile_module` ( - `profile_id` int(11) NOT NULL, - `module_id` int(11) NOT NULL, - `access` tinyint(4) DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`profile_id`,`module_id`), - KEY `idx_profile_module_profile_id` (`profile_id`), - KEY `idx_profile_module_module_id` (`module_id`), - CONSTRAINT `fk_profile_module_module_id` FOREIGN KEY (`module_id`) REFERENCES `module` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_profile_module_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `profile` (`id`) ON DELETE CASCADE ON UPDATE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `profile_resource`; - -CREATE TABLE `profile_resource` ( - `profile_id` int(11) NOT NULL, - `resource_id` int(11) NOT NULL, - `access` int(11) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`profile_id`,`resource_id`), - KEY `idx_profile_resource_profile_id` (`profile_id`), - KEY `idx_profile_resource_resource_id` (`resource_id`), - CONSTRAINT `fk_profile_resource_profile_id` FOREIGN KEY (`profile_id`) REFERENCES `profile` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_profile_resource_resource_id` FOREIGN KEY (`resource_id`) REFERENCES `resource` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `resource`; - -CREATE TABLE `resource` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `code` varchar(255) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `code_UNIQUE` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8; - -INSERT INTO `resource` VALUES("1","admin.address","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("2","admin.configuration.administrator","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("3","admin.configuration.area","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("4","admin.configuration.attribute","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("5","admin.category","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("6","admin.configuration","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("7","admin.content","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("8","admin.configuration.country","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("9","admin.coupon","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("10","admin.configuration.currency","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("11","admin.customer","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("12","admin.configuration.feature","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("13","admin.folder","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("14","admin.configuration.language","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("15","admin.configuration.mailing-system","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("16","admin.configuration.message","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("17","admin.module","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("18","admin.order","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("19","admin.product","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("20","admin.configuration.profile","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("21","admin.configuration.shipping-zone","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("22","admin.configuration.tax","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("23","admin.configuration.template","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("24","admin.configuration.system-log","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("25","admin.cache","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("26","admin.home","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("27","admin.configuration.store","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("28","admin.configuration.variable","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("29","admin.configuration.admin-logs","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("30","admin.configuration.system-logs","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("31","admin.configuration.advanced","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("32","admin.configuration.translations","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("33","admin.export","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("34","admin.tools","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("35","admin.brand","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("36","admin.hook","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("37","admin.module-hook","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("38","admin.sales","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("39","admin.administrator","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("40","admin.configuration.category","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("41","admin.configuration.shipping-configuration","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("42","admin.configuration.tax-rule","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("43","admin.hooks","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("44","admin.import","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("45","admin.modules","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("46","admin.profile","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("47","admin.search","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("48","admin.configuration.api","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `resource` VALUES("49","admin.customer.title","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `resource_i18n`; - -CREATE TABLE `resource_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `resource_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `resource` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `resource_i18n` VALUES("1","de_DE","Adresse","","",""); -INSERT INTO `resource_i18n` VALUES("1","en_US","Address","","",""); -INSERT INTO `resource_i18n` VALUES("1","es_ES","Dirección","","",""); -INSERT INTO `resource_i18n` VALUES("1","fr_FR","Adresse","","",""); -INSERT INTO `resource_i18n` VALUES("2","de_DE","Konfiguration / Administrator","","",""); -INSERT INTO `resource_i18n` VALUES("2","en_US","Configuration / Administrator","","",""); -INSERT INTO `resource_i18n` VALUES("2","es_ES","Configuración / administrador","","",""); -INSERT INTO `resource_i18n` VALUES("2","fr_FR","Configuration / Administrateur","","",""); -INSERT INTO `resource_i18n` VALUES("3","de_DE","Konfiguration / Zone","","",""); -INSERT INTO `resource_i18n` VALUES("3","en_US","Configuration / Area","","",""); -INSERT INTO `resource_i18n` VALUES("3","es_ES","Configuración / área","","",""); -INSERT INTO `resource_i18n` VALUES("3","fr_FR","Configuration / Zone","","",""); -INSERT INTO `resource_i18n` VALUES("4","de_DE","Konfiguration / Deklination","","",""); -INSERT INTO `resource_i18n` VALUES("4","en_US","Configuration / Attribute","","",""); -INSERT INTO `resource_i18n` VALUES("4","es_ES","Configuración / atributo","","",""); -INSERT INTO `resource_i18n` VALUES("4","fr_FR","Configuration / Attribut","","",""); -INSERT INTO `resource_i18n` VALUES("5","de_DE","Kategorie","","",""); -INSERT INTO `resource_i18n` VALUES("5","en_US","Category","","",""); -INSERT INTO `resource_i18n` VALUES("5","es_ES","Categoria","","",""); -INSERT INTO `resource_i18n` VALUES("5","fr_FR","Catégorie","","",""); -INSERT INTO `resource_i18n` VALUES("6","de_DE","Einstellungen","","",""); -INSERT INTO `resource_i18n` VALUES("6","en_US","Configuration","","",""); -INSERT INTO `resource_i18n` VALUES("6","es_ES","Configuración","","",""); -INSERT INTO `resource_i18n` VALUES("6","fr_FR","Configuration","","",""); -INSERT INTO `resource_i18n` VALUES("7","de_DE","Inhalt","","",""); -INSERT INTO `resource_i18n` VALUES("7","en_US","Content","","",""); -INSERT INTO `resource_i18n` VALUES("7","es_ES","Contenido","","",""); -INSERT INTO `resource_i18n` VALUES("7","fr_FR","Contenu","","",""); -INSERT INTO `resource_i18n` VALUES("8","de_DE","Konfiguration / Land","","",""); -INSERT INTO `resource_i18n` VALUES("8","en_US","Configuration / Country","","",""); -INSERT INTO `resource_i18n` VALUES("8","es_ES","Configuración / país","","",""); -INSERT INTO `resource_i18n` VALUES("8","fr_FR","Configuration / Pays","","",""); -INSERT INTO `resource_i18n` VALUES("9","de_DE","Gutschein","","",""); -INSERT INTO `resource_i18n` VALUES("9","en_US","Coupon","","",""); -INSERT INTO `resource_i18n` VALUES("9","es_ES","Cupón","","",""); -INSERT INTO `resource_i18n` VALUES("9","fr_FR","Code promo","","",""); -INSERT INTO `resource_i18n` VALUES("10","de_DE","Konfiguration / Währung","","",""); -INSERT INTO `resource_i18n` VALUES("10","en_US","Configuration / Currency","","",""); -INSERT INTO `resource_i18n` VALUES("10","es_ES","Configuración / Moneda","","",""); -INSERT INTO `resource_i18n` VALUES("10","fr_FR","Configuration / Devise","","",""); -INSERT INTO `resource_i18n` VALUES("11","de_DE","Kunde","","",""); -INSERT INTO `resource_i18n` VALUES("11","en_US","Customer","","",""); -INSERT INTO `resource_i18n` VALUES("11","es_ES","Cliente","","",""); -INSERT INTO `resource_i18n` VALUES("11","fr_FR","Client","","",""); -INSERT INTO `resource_i18n` VALUES("12","de_DE","Konfiguration / Charakteristik","","",""); -INSERT INTO `resource_i18n` VALUES("12","en_US","Configuration / Feature","","",""); -INSERT INTO `resource_i18n` VALUES("12","es_ES","Configuración / Característica","","",""); -INSERT INTO `resource_i18n` VALUES("12","fr_FR","Configuration / Caractéristique","","",""); -INSERT INTO `resource_i18n` VALUES("13","de_DE","Ordner","","",""); -INSERT INTO `resource_i18n` VALUES("13","en_US","Folder","","",""); -INSERT INTO `resource_i18n` VALUES("13","es_ES","Carpeta","","",""); -INSERT INTO `resource_i18n` VALUES("13","fr_FR","Dossier","","",""); -INSERT INTO `resource_i18n` VALUES("14","de_DE","Konfiguration / Sprache","","",""); -INSERT INTO `resource_i18n` VALUES("14","en_US","Configuration / Language","","",""); -INSERT INTO `resource_i18n` VALUES("14","es_ES","Configuración / Idioma","","",""); -INSERT INTO `resource_i18n` VALUES("14","fr_FR","Configuration / Langue","","",""); -INSERT INTO `resource_i18n` VALUES("15","de_DE","Konfiguration / Mailing-System","","",""); -INSERT INTO `resource_i18n` VALUES("15","en_US","Configuration / Mailing-system","","",""); -INSERT INTO `resource_i18n` VALUES("15","es_ES","Configuración / Sistema de correo","","",""); -INSERT INTO `resource_i18n` VALUES("15","fr_FR","Configuration / Système de mails","","",""); -INSERT INTO `resource_i18n` VALUES("16","de_DE","Konfiguration / Nachricht","","",""); -INSERT INTO `resource_i18n` VALUES("16","en_US","Configuration / Message","","",""); -INSERT INTO `resource_i18n` VALUES("16","es_ES","Configuración / Mensaje","","",""); -INSERT INTO `resource_i18n` VALUES("16","fr_FR","Configuration / Message","","",""); -INSERT INTO `resource_i18n` VALUES("17","de_DE","Konfiguration / Modul","","",""); -INSERT INTO `resource_i18n` VALUES("17","en_US","Configuration / Module","","",""); -INSERT INTO `resource_i18n` VALUES("17","es_ES","Configuración / Módulo","","",""); -INSERT INTO `resource_i18n` VALUES("17","fr_FR","Configuration / Module","","",""); -INSERT INTO `resource_i18n` VALUES("18","de_DE","Bestellung","","",""); -INSERT INTO `resource_i18n` VALUES("18","en_US","Order","","",""); -INSERT INTO `resource_i18n` VALUES("18","es_ES","Pedido","","",""); -INSERT INTO `resource_i18n` VALUES("18","fr_FR","Commande","","",""); -INSERT INTO `resource_i18n` VALUES("19","de_DE","Produkt","","",""); -INSERT INTO `resource_i18n` VALUES("19","en_US","Product","","",""); -INSERT INTO `resource_i18n` VALUES("19","es_ES","Producto","","",""); -INSERT INTO `resource_i18n` VALUES("19","fr_FR","Produit","","",""); -INSERT INTO `resource_i18n` VALUES("20","de_DE","Konfiguration / Profil","","",""); -INSERT INTO `resource_i18n` VALUES("20","en_US","Configuration / Profile","","",""); -INSERT INTO `resource_i18n` VALUES("20","es_ES","Configuración / Perfil","","",""); -INSERT INTO `resource_i18n` VALUES("20","fr_FR","Configuration / Profil","","",""); -INSERT INTO `resource_i18n` VALUES("21","de_DE","Konfiguration / Lieferzone","","",""); -INSERT INTO `resource_i18n` VALUES("21","en_US","Configuration / Shipping-zone","","",""); -INSERT INTO `resource_i18n` VALUES("21","es_ES","Configuración / Zona de envío","","",""); -INSERT INTO `resource_i18n` VALUES("21","fr_FR","Configuration / Zone de livraison","","",""); -INSERT INTO `resource_i18n` VALUES("22","de_DE","Konfiguration / Tax","","",""); -INSERT INTO `resource_i18n` VALUES("22","en_US","Configuration / Tax","","",""); -INSERT INTO `resource_i18n` VALUES("22","es_ES","Configuración / Impuestos","","",""); -INSERT INTO `resource_i18n` VALUES("22","fr_FR","Configuration / Taxe","","",""); -INSERT INTO `resource_i18n` VALUES("23","de_DE","Konfiguration / Template","","",""); -INSERT INTO `resource_i18n` VALUES("23","en_US","Configuration / Template","","",""); -INSERT INTO `resource_i18n` VALUES("23","es_ES","Configuración / Plantilla","","",""); -INSERT INTO `resource_i18n` VALUES("23","fr_FR","Configuration / Modèle","","",""); -INSERT INTO `resource_i18n` VALUES("24","de_DE","Konfiguration / Logs System","","",""); -INSERT INTO `resource_i18n` VALUES("24","en_US","Configuration / System Log","","",""); -INSERT INTO `resource_i18n` VALUES("24","es_ES","Configuración / Sistema de log","","",""); -INSERT INTO `resource_i18n` VALUES("24","fr_FR","Configuration / Logs système","","",""); -INSERT INTO `resource_i18n` VALUES("25","de_DE","Konfiguration / Cache","","",""); -INSERT INTO `resource_i18n` VALUES("25","en_US","Configuration / Cache","","",""); -INSERT INTO `resource_i18n` VALUES("25","es_ES","Configuración / caché","","",""); -INSERT INTO `resource_i18n` VALUES("25","fr_FR","Configuration / Cache","","",""); -INSERT INTO `resource_i18n` VALUES("26","de_DE","Back-Office Startseite","","",""); -INSERT INTO `resource_i18n` VALUES("26","en_US","Back-office home page","","",""); -INSERT INTO `resource_i18n` VALUES("26","es_ES","Página de inicio de back office","","",""); -INSERT INTO `resource_i18n` VALUES("26","fr_FR","Page d\'acceuil de l\'administration","","",""); -INSERT INTO `resource_i18n` VALUES("27","de_DE","Shop Informationen","","",""); -INSERT INTO `resource_i18n` VALUES("27","en_US","Store information configuration","","",""); -INSERT INTO `resource_i18n` VALUES("27","es_ES","Configuración de la información de tienda","","",""); -INSERT INTO `resource_i18n` VALUES("27","fr_FR","Configuration des informations sur la boutique","","",""); -INSERT INTO `resource_i18n` VALUES("28","de_DE","Konfigurations Variablen","","",""); -INSERT INTO `resource_i18n` VALUES("28","en_US","Configuration variables","","",""); -INSERT INTO `resource_i18n` VALUES("28","es_ES","Variables de configuración","","",""); -INSERT INTO `resource_i18n` VALUES("28","fr_FR","Variables de configuration","","",""); -INSERT INTO `resource_i18n` VALUES("29","de_DE","Administration Logs ansehen","","",""); -INSERT INTO `resource_i18n` VALUES("29","en_US","View administration logs","","",""); -INSERT INTO `resource_i18n` VALUES("29","es_ES","Ver logs de administración","","",""); -INSERT INTO `resource_i18n` VALUES("29","fr_FR","Consulter les logs d\'administration","","",""); -INSERT INTO `resource_i18n` VALUES("30","de_DE","Logs System Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("30","en_US","Logging system configuration","","",""); -INSERT INTO `resource_i18n` VALUES("30","es_ES","Configuración de sistema de registro","","",""); -INSERT INTO `resource_i18n` VALUES("30","fr_FR","Configuration du système de log","","",""); -INSERT INTO `resource_i18n` VALUES("31","de_DE","Erweiterte Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("31","en_US","Advanced configuration","","",""); -INSERT INTO `resource_i18n` VALUES("31","es_ES","Configuración avanzada","","",""); -INSERT INTO `resource_i18n` VALUES("31","fr_FR","Configuration avancée","","",""); -INSERT INTO `resource_i18n` VALUES("32","de_DE","Übersetzungen","","",""); -INSERT INTO `resource_i18n` VALUES("32","en_US","Translations","","",""); -INSERT INTO `resource_i18n` VALUES("32","es_ES","Traducciones","","",""); -INSERT INTO `resource_i18n` VALUES("32","fr_FR","Traductions","","",""); -INSERT INTO `resource_i18n` VALUES("33","de_DE","Exporten-Verwaltung","","",""); -INSERT INTO `resource_i18n` VALUES("33","en_US","Back-office export management","","",""); -INSERT INTO `resource_i18n` VALUES("33","es_ES","Gestor de exportación de Back Office","","",""); -INSERT INTO `resource_i18n` VALUES("33","fr_FR","gestion des exports","","",""); -INSERT INTO `resource_i18n` VALUES("34","de_DE","Tools","","",""); -INSERT INTO `resource_i18n` VALUES("34","en_US","Tools panel","","",""); -INSERT INTO `resource_i18n` VALUES("34","es_ES","Panel de herramientas","","",""); -INSERT INTO `resource_i18n` VALUES("34","fr_FR","Outils","","",""); -INSERT INTO `resource_i18n` VALUES("35","de_DE","Marken-Verwaltung","","",""); -INSERT INTO `resource_i18n` VALUES("35","en_US","Brands management","","",""); -INSERT INTO `resource_i18n` VALUES("35","es_ES","Gestión de marcas","","",""); -INSERT INTO `resource_i18n` VALUES("35","fr_FR","Gestion des marques","","",""); -INSERT INTO `resource_i18n` VALUES("36","de_DE","Andockpunkte","","",""); -INSERT INTO `resource_i18n` VALUES("36","en_US","Hooks","","",""); -INSERT INTO `resource_i18n` VALUES("36","es_ES","Hooks","","",""); -INSERT INTO `resource_i18n` VALUES("36","fr_FR","Points d\'accroche","","",""); -INSERT INTO `resource_i18n` VALUES("37","de_DE","Hook Positionen","","",""); -INSERT INTO `resource_i18n` VALUES("37","en_US","Hook positions","","",""); -INSERT INTO `resource_i18n` VALUES("37","es_ES","Posiciones de hook","","",""); -INSERT INTO `resource_i18n` VALUES("37","fr_FR","Positions des points d\'accroche","","",""); -INSERT INTO `resource_i18n` VALUES("38","de_DE","Sonderangebotsmanagement","","",""); -INSERT INTO `resource_i18n` VALUES("38","en_US","Sales management","","",""); -INSERT INTO `resource_i18n` VALUES("38","es_ES","Administración de ventas","","",""); -INSERT INTO `resource_i18n` VALUES("38","fr_FR","Gestion des promotions","","",""); -INSERT INTO `resource_i18n` VALUES("39","de_DE","Administratorenliste","","",""); -INSERT INTO `resource_i18n` VALUES("39","en_US","Administatros list","","",""); -INSERT INTO `resource_i18n` VALUES("39","es_ES","Lista de Administradores","","",""); -INSERT INTO `resource_i18n` VALUES("39","fr_FR","Liste des administrateurs","","",""); -INSERT INTO `resource_i18n` VALUES("40","de_DE","Kategorie-Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("40","en_US","Category configuration","","",""); -INSERT INTO `resource_i18n` VALUES("40","es_ES","Configuración de la categoría","","",""); -INSERT INTO `resource_i18n` VALUES("40","fr_FR","Configuration d\'une catégorie","","",""); -INSERT INTO `resource_i18n` VALUES("41","de_DE","Lieferungskonfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("41","en_US","Shipping configuration","","",""); -INSERT INTO `resource_i18n` VALUES("41","es_ES","Configuración de envío","","",""); -INSERT INTO `resource_i18n` VALUES("41","fr_FR","Configuration du transport","","",""); -INSERT INTO `resource_i18n` VALUES("42","de_DE","Taxeregelung-Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("42","en_US","Tax rules configuration","","",""); -INSERT INTO `resource_i18n` VALUES("42","es_ES","Configuración de las reglas de impuestos","","",""); -INSERT INTO `resource_i18n` VALUES("42","fr_FR","Configuration des règles de taxes","","",""); -INSERT INTO `resource_i18n` VALUES("43","de_DE","Hooks Verwendung","","",""); -INSERT INTO `resource_i18n` VALUES("43","en_US","Hooks management","","",""); -INSERT INTO `resource_i18n` VALUES("43","es_ES","Gestión de Hooks","","",""); -INSERT INTO `resource_i18n` VALUES("43","fr_FR","Gestion des hooks","","",""); -INSERT INTO `resource_i18n` VALUES("44","de_DE","Importation / Exportation von Daten","","",""); -INSERT INTO `resource_i18n` VALUES("44","en_US","Data import / export","","",""); -INSERT INTO `resource_i18n` VALUES("44","es_ES","Importación/ exportación de datos","","",""); -INSERT INTO `resource_i18n` VALUES("44","fr_FR","Importation / exportation de données","","",""); -INSERT INTO `resource_i18n` VALUES("45","de_DE","Modul Verwendung","","",""); -INSERT INTO `resource_i18n` VALUES("45","en_US","Modules maagement","","",""); -INSERT INTO `resource_i18n` VALUES("45","es_ES","Administración de módulos","","",""); -INSERT INTO `resource_i18n` VALUES("45","fr_FR","Gestion des modules","","",""); -INSERT INTO `resource_i18n` VALUES("46","de_DE","Administration-Profilverwaltung","","",""); -INSERT INTO `resource_i18n` VALUES("46","en_US","Administration profiles management","","",""); -INSERT INTO `resource_i18n` VALUES("46","es_ES","Gestión de perfiles de administración","","",""); -INSERT INTO `resource_i18n` VALUES("46","fr_FR","Gestion des profils d\'administration","","",""); -INSERT INTO `resource_i18n` VALUES("47","de_DE","Back-Office Suchfunktion","","",""); -INSERT INTO `resource_i18n` VALUES("47","en_US","Back-office search function","","",""); -INSERT INTO `resource_i18n` VALUES("47","es_ES","Función de búsqueda de back office","","",""); -INSERT INTO `resource_i18n` VALUES("47","fr_FR","Fonction de recherche dans l\'administration","","",""); -INSERT INTO `resource_i18n` VALUES("48","de_DE","API-Konfiguration","","",""); -INSERT INTO `resource_i18n` VALUES("48","en_US","API Configuration","","",""); -INSERT INTO `resource_i18n` VALUES("48","es_ES","Configuración de API","","",""); -INSERT INTO `resource_i18n` VALUES("48","fr_FR","Configuration de l\'API","","",""); -INSERT INTO `resource_i18n` VALUES("49","de_DE","Kunde-Andere","","",""); -INSERT INTO `resource_i18n` VALUES("49","en_US","Customer title","","",""); -INSERT INTO `resource_i18n` VALUES("49","es_ES","Estado civil cliente","","",""); -INSERT INTO `resource_i18n` VALUES("49","fr_FR","civilité client","","",""); - - - -DROP TABLE `rewriting_argument`; - -CREATE TABLE `rewriting_argument` ( - `rewriting_url_id` int(11) NOT NULL, - `parameter` varchar(255) NOT NULL, - `value` varchar(255) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`rewriting_url_id`,`parameter`,`value`), - KEY `idx_rewriting_argument_rewirting_url_id` (`rewriting_url_id`), - CONSTRAINT `fk_rewriting_argument_rewirting_url_id` FOREIGN KEY (`rewriting_url_id`) REFERENCES `rewriting_url` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `rewriting_url`; - -CREATE TABLE `rewriting_url` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `url` varbinary(255) NOT NULL, - `view` varchar(255) DEFAULT NULL, - `view_id` varchar(255) DEFAULT NULL, - `view_locale` varchar(255) DEFAULT NULL, - `redirected` int(11) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - UNIQUE KEY `url_UNIQUE` (`url`), - KEY `idx_rewriting_url_redirected` (`redirected`), - KEY `idx_rewriting_url` (`view_locale`,`view`,`view_id`,`redirected`), - CONSTRAINT `fk_rewriting_url_redirected` FOREIGN KEY (`redirected`) REFERENCES `rewriting_url` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; - -INSERT INTO `rewriting_url` VALUES("1","confitures.html","category","1","fr_FR","","2017-02-28 18:48:43","2017-02-28 18:48:43"); -INSERT INTO `rewriting_url` VALUES("2","nos-salés.html","category","2","fr_FR","","2017-03-01 12:46:30","2017-03-01 12:46:30"); -INSERT INTO `rewriting_url` VALUES("3","nos-crèmes-et-gelées.html","category","3","fr_FR","","2017-03-01 12:46:47","2017-03-01 12:46:47"); -INSERT INTO `rewriting_url` VALUES("4","nos-coffrets.html","category","4","fr_FR","","2017-03-01 12:46:56","2017-03-01 12:46:56"); -INSERT INTO `rewriting_url` VALUES("5","nos-préparations-toutes-prêtes.html","category","5","fr_FR","6","2017-03-01 12:47:12","2017-03-01 16:00:13"); -INSERT INTO `rewriting_url` VALUES("6","nos-preparations.html","category","5","fr_FR","","2017-03-01 16:00:13","2017-03-01 16:00:13"); -INSERT INTO `rewriting_url` VALUES("7","fruits-exotiques.html","category","6","fr_FR","","2017-03-01 16:03:45","2017-03-01 16:03:45"); -INSERT INTO `rewriting_url` VALUES("8","fruits-rouges.html","category","7","fr_FR","","2017-03-01 16:07:52","2017-03-01 16:07:52"); -INSERT INTO `rewriting_url` VALUES("9","agrumes.html","category","8","fr_FR","","2017-03-01 16:08:15","2017-03-01 16:08:15"); -INSERT INTO `rewriting_url` VALUES("10","fruits-à-noyaux.html","category","9","fr_FR","","2017-03-01 16:08:27","2017-03-01 16:08:27"); -INSERT INTO `rewriting_url` VALUES("11","fruits-à-pépins.html","category","10","fr_FR","","2017-03-01 16:08:40","2017-03-01 16:08:40"); -INSERT INTO `rewriting_url` VALUES("12","test.html","obsolete-rewritten-url","11","fr_FR","","2017-05-10 20:24:28","2017-05-10 20:24:28"); -INSERT INTO `rewriting_url` VALUES("13","toto.html","obsolete-rewritten-url","1","fr_FR","","2017-05-10 20:26:26","2017-05-10 20:26:26"); -INSERT INTO `rewriting_url` VALUES("14","crème-de-citron.html","product","1","fr_FR","15","2017-05-11 19:42:45","2017-05-11 20:47:08"); -INSERT INTO `rewriting_url` VALUES("15","creme-de-citron.html","product","1","fr_FR","","2017-05-11 20:47:08","2017-05-11 20:47:08"); -INSERT INTO `rewriting_url` VALUES("16","test1.html","folder","1","fr_FR","","2017-05-11 23:48:10","2017-05-11 23:48:10"); -INSERT INTO `rewriting_url` VALUES("17","test-2.html","content","1","fr_FR","18","2017-05-11 23:49:17","2017-05-11 23:52:14"); -INSERT INTO `rewriting_url` VALUES("18","nos-pots.html","content","1","fr_FR","","2017-05-11 23:52:14","2017-05-11 23:52:14"); -INSERT INTO `rewriting_url` VALUES("19","légumes.html","category","11","fr_FR","21","2017-05-23 12:44:55","2017-05-23 13:22:01"); -INSERT INTO `rewriting_url` VALUES("20","blettes.html","product","2","fr_FR","","2017-05-23 12:46:29","2017-05-23 12:46:29"); -INSERT INTO `rewriting_url` VALUES("21","legumes.html","category","11","fr_FR","","2017-05-23 13:22:01","2017-05-23 13:22:01"); - - - -DROP TABLE `sale`; - -CREATE TABLE `sale` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `active` tinyint(1) NOT NULL DEFAULT '0', - `display_initial_price` tinyint(1) NOT NULL DEFAULT '1', - `start_date` datetime DEFAULT NULL, - `end_date` datetime DEFAULT NULL, - `price_offset_type` tinyint(4) DEFAULT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_sales_active_start_end_date` (`active`,`start_date`,`end_date`), - KEY `idx_sales_active` (`active`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `sale_i18n`; - -CREATE TABLE `sale_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - `chapo` text, - `postscriptum` text, - `sale_label` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `sale_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `sale` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `sale_offset_currency`; - -CREATE TABLE `sale_offset_currency` ( - `sale_id` int(11) NOT NULL, - `currency_id` int(11) NOT NULL, - `price_offset_value` float DEFAULT '0', - PRIMARY KEY (`sale_id`,`currency_id`), - KEY `fk_sale_offset_currency_currency1_idx` (`currency_id`), - CONSTRAINT `fk_sale_offset_currency_currency_id` FOREIGN KEY (`currency_id`) REFERENCES `currency` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_sale_offset_currency_sales_id` FOREIGN KEY (`sale_id`) REFERENCES `sale` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `sale_product`; - -CREATE TABLE `sale_product` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `sale_id` int(11) NOT NULL, - `product_id` int(11) NOT NULL, - `attribute_av_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `fk_sale_product_product_idx` (`product_id`), - KEY `fk_sale_product_attribute_av_idx` (`attribute_av_id`), - KEY `idx_sale_product_sales_id_product_id` (`sale_id`,`product_id`), - CONSTRAINT `fk_sale_product_attribute_av_id` FOREIGN KEY (`attribute_av_id`) REFERENCES `attribute_av` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_sale_product_product_id` FOREIGN KEY (`product_id`) REFERENCES `product` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_sale_product_sales_id` FOREIGN KEY (`sale_id`) REFERENCES `sale` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - -DROP TABLE `state`; - -CREATE TABLE `state` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `visible` tinyint(4) NOT NULL DEFAULT '0', - `isocode` varchar(4) DEFAULT NULL, - `country_id` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `fk_state_country_id_idx` (`country_id`), - CONSTRAINT `fk_state_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=313 DEFAULT CHARSET=utf8; - -INSERT INTO `state` VALUES("1","0","AL","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("2","0","AK","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("3","0","AZ","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("4","0","AR","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("5","0","CA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("6","0","CO","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("7","0","CT","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("8","0","DE","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("9","0","FL","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("10","0","GA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("11","0","HI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("12","0","ID","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("13","0","IL","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("14","0","IN","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("15","0","IA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("16","0","KS","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("17","0","KY","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("18","0","LA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("19","0","ME","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("20","0","MD","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("21","0","MA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("22","0","MI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("23","0","MN","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("24","0","MS","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("25","0","MO","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("26","0","MT","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("27","0","NE","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("28","0","NV","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("29","0","NH","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("30","0","NJ","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("31","0","NM","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("32","0","NY","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("33","0","NC","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("34","0","ND","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("35","0","OH","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("36","0","OK","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("37","0","OR","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("38","0","PA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("39","0","RI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("40","0","SC","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("41","0","SD","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("42","0","TN","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("43","0","TX","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("44","0","UT","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("45","0","VT","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("46","0","VA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("47","0","WA","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("48","0","WV","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("49","0","WI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("50","0","WY","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("51","0","PR","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("52","0","VI","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("53","0","DC","196","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("54","0","AGS","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("55","0","BCN","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("56","0","BCS","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("57","0","CAM","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("58","0","CHP","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("59","0","CHH","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("60","0","COA","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("61","0","COL","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("62","0","DIF","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("63","0","DUR","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("64","0","GUA","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("65","0","GRO","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("66","0","HID","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("67","0","JAL","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("68","0","MEX","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("69","0","MIC","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("70","0","MOR","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("71","0","NAY","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("72","0","NLE","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("73","0","OAX","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("74","0","PUE","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("75","0","QUE","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("76","0","ROO","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("77","0","SLP","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("78","0","SIN","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("79","0","SON","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("80","0","TAB","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("81","0","TAM","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("82","0","TLA","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("83","0","VER","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("84","0","YUC","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("85","0","ZAC","115","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("86","0","ON","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("87","0","QC","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("88","0","BC","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("89","0","AB","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("90","0","MB","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("91","0","SK","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("92","0","NS","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("93","0","NB","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("94","0","NL","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("95","0","PE","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("96","0","NT","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("97","0","YT","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("98","0","NU","246","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("99","0","B","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("100","0","K","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("101","0","H","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("102","0","U","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("103","0","C","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("104","0","X","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("105","0","W","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("106","0","E","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("107","0","P","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("108","0","Y","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("109","0","L","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("110","0","F","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("111","0","M","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("112","0","N","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("113","0","Q","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("114","0","R","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("115","0","A","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("116","0","J","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("117","0","D","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("118","0","Z","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("119","0","S","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("120","0","G","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("121","0","V","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("122","0","T","10","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("123","0","AG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("124","0","AL","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("125","0","AN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("126","0","AO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("127","0","AR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("128","0","AP","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("129","0","AT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("130","0","AV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("131","0","BA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("132","0","BT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("133","0","BL","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("134","0","BN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("135","0","BG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("136","0","BI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("137","0","BO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("138","0","BZ","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("139","0","BS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("140","0","BR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("141","0","CA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("142","0","CL","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("143","0","CB","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("144","0","CI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("145","0","CE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("146","0","CT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("147","0","CZ","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("148","0","CH","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("149","0","CO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("150","0","CS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("151","0","CR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("152","0","KR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("153","0","CN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("154","0","EN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("155","0","FM","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("156","0","FE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("157","0","FI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("158","0","FG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("159","0","FC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("160","0","FR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("161","0","GE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("162","0","GO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("163","0","GR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("164","0","IM","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("165","0","IS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("166","0","AQ","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("167","0","SP","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("168","0","LT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("169","0","LE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("170","0","LC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("171","0","LI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("172","0","LO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("173","0","LU","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("174","0","MC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("175","0","MN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("176","0","MS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("177","0","MT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("178","0","VS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("179","0","ME","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("180","0","MI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("181","0","MO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("182","0","MB","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("183","0","NA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("184","0","NO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("185","0","NU","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("186","0","OG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("187","0","OT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("188","0","OR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("189","0","PD","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("190","0","PA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("191","0","PR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("192","0","PV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("193","0","PG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("194","0","PU","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("195","0","PE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("196","0","PC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("197","0","PI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("198","0","PT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("199","0","PN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("200","0","PZ","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("201","0","PO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("202","0","RG","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("203","0","RA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("204","0","RC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("205","0","RE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("206","0","RI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("207","0","RN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("208","0","RM","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("209","0","RO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("210","0","SA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("211","0","SS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("212","0","SV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("213","0","SI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("214","0","SR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("215","0","SO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("216","0","TA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("217","0","TE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("218","0","TR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("219","0","TO","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("220","0","TP","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("221","0","TN","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("222","0","TV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("223","0","TS","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("224","0","UD","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("225","0","VA","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("226","0","VE","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("227","0","VB","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("228","0","VC","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("229","0","VR","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("230","0","VV","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("231","0","VI","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("232","0","VT","86","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("233","0","AC","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("234","0","BA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("235","0","BB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("236","0","BT","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("237","0","BE","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("238","0","JT","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("239","0","KT","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("240","0","ST","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("241","0","JI","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("242","0","KI","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("243","0","NT","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("244","0","GO","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("245","0","JK","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("246","0","JA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("247","0","LA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("248","0","MA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("249","0","MU","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("250","0","SA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("251","0","SU","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("252","0","PA","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("253","0","RI","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("254","0","KR","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("255","0","SG","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("256","0","KS","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("257","0","SN","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("258","0","SS","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("259","0","JB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("260","0","KB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("261","0","NB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("262","0","PB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("263","0","SR","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("264","0","SB","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("265","0","YO","80","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("266","0","23","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("267","0","05","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("268","0","02","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("269","0","12","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("270","0","38","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("271","0","18","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("272","0","40","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("273","0","07","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("274","0","21","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("275","0","10","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("276","0","34","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("277","0","01","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("278","0","28","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("279","0","08","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("280","0","17","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("281","0","03","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("282","0","37","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("283","0","46","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("284","0","14","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("285","0","39","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("286","0","43","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("287","0","26","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("288","0","24","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("289","0","04","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("290","0","45","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("291","0","20","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("292","0","42","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("293","0","29","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("294","0","15","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("295","0","44","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("296","0","33","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("297","0","47","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("298","0","27","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("299","0","41","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("300","0","11","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("301","0","25","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("302","0","32","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("303","0","22","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("304","0","09","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("305","0","36","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("306","0","13","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("307","0","31","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("308","0","16","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("309","0","30","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("310","0","06","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("311","0","35","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); -INSERT INTO `state` VALUES("312","0","19","88","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `state_i18n`; - -CREATE TABLE `state_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `state_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `state` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `state_i18n` VALUES("1","de_DE",""); -INSERT INTO `state_i18n` VALUES("1","en_US","Alabama"); -INSERT INTO `state_i18n` VALUES("1","es_ES",""); -INSERT INTO `state_i18n` VALUES("1","fr_FR","Alabama"); -INSERT INTO `state_i18n` VALUES("2","de_DE",""); -INSERT INTO `state_i18n` VALUES("2","en_US","Alaska"); -INSERT INTO `state_i18n` VALUES("2","es_ES",""); -INSERT INTO `state_i18n` VALUES("2","fr_FR","Alaska"); -INSERT INTO `state_i18n` VALUES("3","de_DE",""); -INSERT INTO `state_i18n` VALUES("3","en_US","Arizona"); -INSERT INTO `state_i18n` VALUES("3","es_ES",""); -INSERT INTO `state_i18n` VALUES("3","fr_FR","Arizona"); -INSERT INTO `state_i18n` VALUES("4","de_DE",""); -INSERT INTO `state_i18n` VALUES("4","en_US","Arkansas"); -INSERT INTO `state_i18n` VALUES("4","es_ES",""); -INSERT INTO `state_i18n` VALUES("4","fr_FR","Arkansas"); -INSERT INTO `state_i18n` VALUES("5","de_DE",""); -INSERT INTO `state_i18n` VALUES("5","en_US","California"); -INSERT INTO `state_i18n` VALUES("5","es_ES",""); -INSERT INTO `state_i18n` VALUES("5","fr_FR","Californie"); -INSERT INTO `state_i18n` VALUES("6","de_DE",""); -INSERT INTO `state_i18n` VALUES("6","en_US","Colorado"); -INSERT INTO `state_i18n` VALUES("6","es_ES",""); -INSERT INTO `state_i18n` VALUES("6","fr_FR","Colorado"); -INSERT INTO `state_i18n` VALUES("7","de_DE",""); -INSERT INTO `state_i18n` VALUES("7","en_US","Connecticut"); -INSERT INTO `state_i18n` VALUES("7","es_ES",""); -INSERT INTO `state_i18n` VALUES("7","fr_FR","Connecticut"); -INSERT INTO `state_i18n` VALUES("8","de_DE",""); -INSERT INTO `state_i18n` VALUES("8","en_US","Delaware"); -INSERT INTO `state_i18n` VALUES("8","es_ES",""); -INSERT INTO `state_i18n` VALUES("8","fr_FR","Delaware"); -INSERT INTO `state_i18n` VALUES("9","de_DE",""); -INSERT INTO `state_i18n` VALUES("9","en_US","Florida"); -INSERT INTO `state_i18n` VALUES("9","es_ES",""); -INSERT INTO `state_i18n` VALUES("9","fr_FR","Floride"); -INSERT INTO `state_i18n` VALUES("10","de_DE","Georgien"); -INSERT INTO `state_i18n` VALUES("10","en_US","Georgia"); -INSERT INTO `state_i18n` VALUES("10","es_ES","Georgia"); -INSERT INTO `state_i18n` VALUES("10","fr_FR","Géorgie"); -INSERT INTO `state_i18n` VALUES("11","de_DE",""); -INSERT INTO `state_i18n` VALUES("11","en_US","Hawaii"); -INSERT INTO `state_i18n` VALUES("11","es_ES",""); -INSERT INTO `state_i18n` VALUES("11","fr_FR","Hawaii"); -INSERT INTO `state_i18n` VALUES("12","de_DE",""); -INSERT INTO `state_i18n` VALUES("12","en_US","Idaho"); -INSERT INTO `state_i18n` VALUES("12","es_ES",""); -INSERT INTO `state_i18n` VALUES("12","fr_FR","Idaho"); -INSERT INTO `state_i18n` VALUES("13","de_DE",""); -INSERT INTO `state_i18n` VALUES("13","en_US","Illinois"); -INSERT INTO `state_i18n` VALUES("13","es_ES",""); -INSERT INTO `state_i18n` VALUES("13","fr_FR","Illinois"); -INSERT INTO `state_i18n` VALUES("14","de_DE",""); -INSERT INTO `state_i18n` VALUES("14","en_US","Indiana"); -INSERT INTO `state_i18n` VALUES("14","es_ES",""); -INSERT INTO `state_i18n` VALUES("14","fr_FR","Indiana"); -INSERT INTO `state_i18n` VALUES("15","de_DE",""); -INSERT INTO `state_i18n` VALUES("15","en_US","Iowa"); -INSERT INTO `state_i18n` VALUES("15","es_ES",""); -INSERT INTO `state_i18n` VALUES("15","fr_FR","Iowa"); -INSERT INTO `state_i18n` VALUES("16","de_DE",""); -INSERT INTO `state_i18n` VALUES("16","en_US","Kansas"); -INSERT INTO `state_i18n` VALUES("16","es_ES",""); -INSERT INTO `state_i18n` VALUES("16","fr_FR","Kansas"); -INSERT INTO `state_i18n` VALUES("17","de_DE",""); -INSERT INTO `state_i18n` VALUES("17","en_US","Kentucky"); -INSERT INTO `state_i18n` VALUES("17","es_ES",""); -INSERT INTO `state_i18n` VALUES("17","fr_FR","Kentucky"); -INSERT INTO `state_i18n` VALUES("18","de_DE",""); -INSERT INTO `state_i18n` VALUES("18","en_US","Louisiana"); -INSERT INTO `state_i18n` VALUES("18","es_ES",""); -INSERT INTO `state_i18n` VALUES("18","fr_FR","Louisiane"); -INSERT INTO `state_i18n` VALUES("19","de_DE",""); -INSERT INTO `state_i18n` VALUES("19","en_US","Maine"); -INSERT INTO `state_i18n` VALUES("19","es_ES",""); -INSERT INTO `state_i18n` VALUES("19","fr_FR","Maine"); -INSERT INTO `state_i18n` VALUES("20","de_DE",""); -INSERT INTO `state_i18n` VALUES("20","en_US","Maryland"); -INSERT INTO `state_i18n` VALUES("20","es_ES",""); -INSERT INTO `state_i18n` VALUES("20","fr_FR","Maryland"); -INSERT INTO `state_i18n` VALUES("21","de_DE",""); -INSERT INTO `state_i18n` VALUES("21","en_US","Massachusetts"); -INSERT INTO `state_i18n` VALUES("21","es_ES",""); -INSERT INTO `state_i18n` VALUES("21","fr_FR","Massachusetts"); -INSERT INTO `state_i18n` VALUES("22","de_DE",""); -INSERT INTO `state_i18n` VALUES("22","en_US","Michigan"); -INSERT INTO `state_i18n` VALUES("22","es_ES",""); -INSERT INTO `state_i18n` VALUES("22","fr_FR","Michigan"); -INSERT INTO `state_i18n` VALUES("23","de_DE",""); -INSERT INTO `state_i18n` VALUES("23","en_US","Minnesota"); -INSERT INTO `state_i18n` VALUES("23","es_ES",""); -INSERT INTO `state_i18n` VALUES("23","fr_FR","Minnesota"); -INSERT INTO `state_i18n` VALUES("24","de_DE",""); -INSERT INTO `state_i18n` VALUES("24","en_US","Mississippi"); -INSERT INTO `state_i18n` VALUES("24","es_ES",""); -INSERT INTO `state_i18n` VALUES("24","fr_FR","Mississippi"); -INSERT INTO `state_i18n` VALUES("25","de_DE",""); -INSERT INTO `state_i18n` VALUES("25","en_US","Missouri"); -INSERT INTO `state_i18n` VALUES("25","es_ES",""); -INSERT INTO `state_i18n` VALUES("25","fr_FR","Missouri"); -INSERT INTO `state_i18n` VALUES("26","de_DE",""); -INSERT INTO `state_i18n` VALUES("26","en_US","Montana"); -INSERT INTO `state_i18n` VALUES("26","es_ES",""); -INSERT INTO `state_i18n` VALUES("26","fr_FR","Montana"); -INSERT INTO `state_i18n` VALUES("27","de_DE",""); -INSERT INTO `state_i18n` VALUES("27","en_US","Nebraska"); -INSERT INTO `state_i18n` VALUES("27","es_ES",""); -INSERT INTO `state_i18n` VALUES("27","fr_FR","Nebraska"); -INSERT INTO `state_i18n` VALUES("28","de_DE",""); -INSERT INTO `state_i18n` VALUES("28","en_US","Nevada"); -INSERT INTO `state_i18n` VALUES("28","es_ES",""); -INSERT INTO `state_i18n` VALUES("28","fr_FR","Nevada"); -INSERT INTO `state_i18n` VALUES("29","de_DE",""); -INSERT INTO `state_i18n` VALUES("29","en_US","New Hampshire"); -INSERT INTO `state_i18n` VALUES("29","es_ES",""); -INSERT INTO `state_i18n` VALUES("29","fr_FR","New Hampshire"); -INSERT INTO `state_i18n` VALUES("30","de_DE",""); -INSERT INTO `state_i18n` VALUES("30","en_US","New Jersey"); -INSERT INTO `state_i18n` VALUES("30","es_ES",""); -INSERT INTO `state_i18n` VALUES("30","fr_FR","New Jersey"); -INSERT INTO `state_i18n` VALUES("31","de_DE",""); -INSERT INTO `state_i18n` VALUES("31","en_US","New Mexico"); -INSERT INTO `state_i18n` VALUES("31","es_ES",""); -INSERT INTO `state_i18n` VALUES("31","fr_FR","Nouveau-Mexique"); -INSERT INTO `state_i18n` VALUES("32","de_DE","New York"); -INSERT INTO `state_i18n` VALUES("32","en_US","New York"); -INSERT INTO `state_i18n` VALUES("32","es_ES","Nueva York"); -INSERT INTO `state_i18n` VALUES("32","fr_FR","New York"); -INSERT INTO `state_i18n` VALUES("33","de_DE",""); -INSERT INTO `state_i18n` VALUES("33","en_US","North Carolina"); -INSERT INTO `state_i18n` VALUES("33","es_ES",""); -INSERT INTO `state_i18n` VALUES("33","fr_FR","Caroline du Nord"); -INSERT INTO `state_i18n` VALUES("34","de_DE",""); -INSERT INTO `state_i18n` VALUES("34","en_US","North Dakota"); -INSERT INTO `state_i18n` VALUES("34","es_ES",""); -INSERT INTO `state_i18n` VALUES("34","fr_FR","Dakota du Nord"); -INSERT INTO `state_i18n` VALUES("35","de_DE",""); -INSERT INTO `state_i18n` VALUES("35","en_US","Ohio"); -INSERT INTO `state_i18n` VALUES("35","es_ES",""); -INSERT INTO `state_i18n` VALUES("35","fr_FR","Ohio"); -INSERT INTO `state_i18n` VALUES("36","de_DE",""); -INSERT INTO `state_i18n` VALUES("36","en_US","Oklahoma"); -INSERT INTO `state_i18n` VALUES("36","es_ES",""); -INSERT INTO `state_i18n` VALUES("36","fr_FR","Oklahoma"); -INSERT INTO `state_i18n` VALUES("37","de_DE",""); -INSERT INTO `state_i18n` VALUES("37","en_US","Oregon"); -INSERT INTO `state_i18n` VALUES("37","es_ES",""); -INSERT INTO `state_i18n` VALUES("37","fr_FR","Oregon"); -INSERT INTO `state_i18n` VALUES("38","de_DE",""); -INSERT INTO `state_i18n` VALUES("38","en_US","Pennsylvania"); -INSERT INTO `state_i18n` VALUES("38","es_ES",""); -INSERT INTO `state_i18n` VALUES("38","fr_FR","Pennsylvanie"); -INSERT INTO `state_i18n` VALUES("39","de_DE",""); -INSERT INTO `state_i18n` VALUES("39","en_US","Rhode Island"); -INSERT INTO `state_i18n` VALUES("39","es_ES",""); -INSERT INTO `state_i18n` VALUES("39","fr_FR","Rhode Island"); -INSERT INTO `state_i18n` VALUES("40","de_DE",""); -INSERT INTO `state_i18n` VALUES("40","en_US","South Carolina"); -INSERT INTO `state_i18n` VALUES("40","es_ES",""); -INSERT INTO `state_i18n` VALUES("40","fr_FR","Caroline du Sud"); -INSERT INTO `state_i18n` VALUES("41","de_DE",""); -INSERT INTO `state_i18n` VALUES("41","en_US","South Dakota"); -INSERT INTO `state_i18n` VALUES("41","es_ES",""); -INSERT INTO `state_i18n` VALUES("41","fr_FR","Dakota du Sud"); -INSERT INTO `state_i18n` VALUES("42","de_DE",""); -INSERT INTO `state_i18n` VALUES("42","en_US","Tennessee"); -INSERT INTO `state_i18n` VALUES("42","es_ES",""); -INSERT INTO `state_i18n` VALUES("42","fr_FR","Tennessee"); -INSERT INTO `state_i18n` VALUES("43","de_DE",""); -INSERT INTO `state_i18n` VALUES("43","en_US","Texas"); -INSERT INTO `state_i18n` VALUES("43","es_ES",""); -INSERT INTO `state_i18n` VALUES("43","fr_FR","Texas"); -INSERT INTO `state_i18n` VALUES("44","de_DE",""); -INSERT INTO `state_i18n` VALUES("44","en_US","Utah"); -INSERT INTO `state_i18n` VALUES("44","es_ES",""); -INSERT INTO `state_i18n` VALUES("44","fr_FR","Utah"); -INSERT INTO `state_i18n` VALUES("45","de_DE",""); -INSERT INTO `state_i18n` VALUES("45","en_US","Vermont"); -INSERT INTO `state_i18n` VALUES("45","es_ES",""); -INSERT INTO `state_i18n` VALUES("45","fr_FR","Vermont"); -INSERT INTO `state_i18n` VALUES("46","de_DE",""); -INSERT INTO `state_i18n` VALUES("46","en_US","Virginia"); -INSERT INTO `state_i18n` VALUES("46","es_ES",""); -INSERT INTO `state_i18n` VALUES("46","fr_FR","Virginie"); -INSERT INTO `state_i18n` VALUES("47","de_DE",""); -INSERT INTO `state_i18n` VALUES("47","en_US","Washington"); -INSERT INTO `state_i18n` VALUES("47","es_ES",""); -INSERT INTO `state_i18n` VALUES("47","fr_FR","Washington"); -INSERT INTO `state_i18n` VALUES("48","de_DE",""); -INSERT INTO `state_i18n` VALUES("48","en_US","West Virginia"); -INSERT INTO `state_i18n` VALUES("48","es_ES",""); -INSERT INTO `state_i18n` VALUES("48","fr_FR","Virginie-occidentale"); -INSERT INTO `state_i18n` VALUES("49","de_DE",""); -INSERT INTO `state_i18n` VALUES("49","en_US","Wisconsin"); -INSERT INTO `state_i18n` VALUES("49","es_ES",""); -INSERT INTO `state_i18n` VALUES("49","fr_FR","Wisconsin"); -INSERT INTO `state_i18n` VALUES("50","de_DE",""); -INSERT INTO `state_i18n` VALUES("50","en_US","Wyoming"); -INSERT INTO `state_i18n` VALUES("50","es_ES",""); -INSERT INTO `state_i18n` VALUES("50","fr_FR","Wyoming"); -INSERT INTO `state_i18n` VALUES("51","de_DE",""); -INSERT INTO `state_i18n` VALUES("51","en_US","Puerto Rico"); -INSERT INTO `state_i18n` VALUES("51","es_ES",""); -INSERT INTO `state_i18n` VALUES("51","fr_FR","Porto Rico"); -INSERT INTO `state_i18n` VALUES("52","de_DE",""); -INSERT INTO `state_i18n` VALUES("52","en_US","US Virgin Islands"); -INSERT INTO `state_i18n` VALUES("52","es_ES",""); -INSERT INTO `state_i18n` VALUES("52","fr_FR","Îles Vierges américaines"); -INSERT INTO `state_i18n` VALUES("53","de_DE",""); -INSERT INTO `state_i18n` VALUES("53","en_US","District of Columbia"); -INSERT INTO `state_i18n` VALUES("53","es_ES",""); -INSERT INTO `state_i18n` VALUES("53","fr_FR","District de Columbia"); -INSERT INTO `state_i18n` VALUES("54","de_DE",""); -INSERT INTO `state_i18n` VALUES("54","en_US","Aguascalientes"); -INSERT INTO `state_i18n` VALUES("54","es_ES",""); -INSERT INTO `state_i18n` VALUES("54","fr_FR","Aguascalientes"); -INSERT INTO `state_i18n` VALUES("55","de_DE",""); -INSERT INTO `state_i18n` VALUES("55","en_US","Baja California"); -INSERT INTO `state_i18n` VALUES("55","es_ES",""); -INSERT INTO `state_i18n` VALUES("55","fr_FR","Baja California"); -INSERT INTO `state_i18n` VALUES("56","de_DE",""); -INSERT INTO `state_i18n` VALUES("56","en_US","Baja California Sur"); -INSERT INTO `state_i18n` VALUES("56","es_ES",""); -INSERT INTO `state_i18n` VALUES("56","fr_FR","Baja California Sur"); -INSERT INTO `state_i18n` VALUES("57","de_DE",""); -INSERT INTO `state_i18n` VALUES("57","en_US","Campeche"); -INSERT INTO `state_i18n` VALUES("57","es_ES",""); -INSERT INTO `state_i18n` VALUES("57","fr_FR","Campeche"); -INSERT INTO `state_i18n` VALUES("58","de_DE",""); -INSERT INTO `state_i18n` VALUES("58","en_US","Chiapas"); -INSERT INTO `state_i18n` VALUES("58","es_ES",""); -INSERT INTO `state_i18n` VALUES("58","fr_FR","Chiapas"); -INSERT INTO `state_i18n` VALUES("59","de_DE",""); -INSERT INTO `state_i18n` VALUES("59","en_US","Chihuahua"); -INSERT INTO `state_i18n` VALUES("59","es_ES",""); -INSERT INTO `state_i18n` VALUES("59","fr_FR","Chihuahua"); -INSERT INTO `state_i18n` VALUES("60","de_DE",""); -INSERT INTO `state_i18n` VALUES("60","en_US","Coahuila"); -INSERT INTO `state_i18n` VALUES("60","es_ES",""); -INSERT INTO `state_i18n` VALUES("60","fr_FR","Coahuila"); -INSERT INTO `state_i18n` VALUES("61","de_DE",""); -INSERT INTO `state_i18n` VALUES("61","en_US","Colima"); -INSERT INTO `state_i18n` VALUES("61","es_ES",""); -INSERT INTO `state_i18n` VALUES("61","fr_FR","Colima"); -INSERT INTO `state_i18n` VALUES("62","de_DE",""); -INSERT INTO `state_i18n` VALUES("62","en_US","Distrito Federal"); -INSERT INTO `state_i18n` VALUES("62","es_ES","Ciudad de México"); -INSERT INTO `state_i18n` VALUES("62","fr_FR","Distrito Federal"); -INSERT INTO `state_i18n` VALUES("63","de_DE",""); -INSERT INTO `state_i18n` VALUES("63","en_US","Durango"); -INSERT INTO `state_i18n` VALUES("63","es_ES",""); -INSERT INTO `state_i18n` VALUES("63","fr_FR","Durango"); -INSERT INTO `state_i18n` VALUES("64","de_DE",""); -INSERT INTO `state_i18n` VALUES("64","en_US","Guanajuato"); -INSERT INTO `state_i18n` VALUES("64","es_ES",""); -INSERT INTO `state_i18n` VALUES("64","fr_FR","Guanajuato"); -INSERT INTO `state_i18n` VALUES("65","de_DE",""); -INSERT INTO `state_i18n` VALUES("65","en_US","Guerrero"); -INSERT INTO `state_i18n` VALUES("65","es_ES",""); -INSERT INTO `state_i18n` VALUES("65","fr_FR","Guerrero"); -INSERT INTO `state_i18n` VALUES("66","de_DE",""); -INSERT INTO `state_i18n` VALUES("66","en_US","Hidalgo"); -INSERT INTO `state_i18n` VALUES("66","es_ES",""); -INSERT INTO `state_i18n` VALUES("66","fr_FR","Hidalgo"); -INSERT INTO `state_i18n` VALUES("67","de_DE",""); -INSERT INTO `state_i18n` VALUES("67","en_US","Jalisco"); -INSERT INTO `state_i18n` VALUES("67","es_ES",""); -INSERT INTO `state_i18n` VALUES("67","fr_FR","Jalisco"); -INSERT INTO `state_i18n` VALUES("68","de_DE",""); -INSERT INTO `state_i18n` VALUES("68","en_US","Estado de México"); -INSERT INTO `state_i18n` VALUES("68","es_ES",""); -INSERT INTO `state_i18n` VALUES("68","fr_FR","Estado de México"); -INSERT INTO `state_i18n` VALUES("69","de_DE",""); -INSERT INTO `state_i18n` VALUES("69","en_US","Michoacán"); -INSERT INTO `state_i18n` VALUES("69","es_ES",""); -INSERT INTO `state_i18n` VALUES("69","fr_FR","Michoacán"); -INSERT INTO `state_i18n` VALUES("70","de_DE",""); -INSERT INTO `state_i18n` VALUES("70","en_US","Morelos"); -INSERT INTO `state_i18n` VALUES("70","es_ES",""); -INSERT INTO `state_i18n` VALUES("70","fr_FR","Morelos"); -INSERT INTO `state_i18n` VALUES("71","de_DE",""); -INSERT INTO `state_i18n` VALUES("71","en_US","Nayarit"); -INSERT INTO `state_i18n` VALUES("71","es_ES",""); -INSERT INTO `state_i18n` VALUES("71","fr_FR","Nayarit"); -INSERT INTO `state_i18n` VALUES("72","de_DE",""); -INSERT INTO `state_i18n` VALUES("72","en_US","Nuevo León"); -INSERT INTO `state_i18n` VALUES("72","es_ES",""); -INSERT INTO `state_i18n` VALUES("72","fr_FR","Nuevo León"); -INSERT INTO `state_i18n` VALUES("73","de_DE",""); -INSERT INTO `state_i18n` VALUES("73","en_US","Oaxaca"); -INSERT INTO `state_i18n` VALUES("73","es_ES",""); -INSERT INTO `state_i18n` VALUES("73","fr_FR","Oaxaca"); -INSERT INTO `state_i18n` VALUES("74","de_DE",""); -INSERT INTO `state_i18n` VALUES("74","en_US","Puebla"); -INSERT INTO `state_i18n` VALUES("74","es_ES",""); -INSERT INTO `state_i18n` VALUES("74","fr_FR","Puebla"); -INSERT INTO `state_i18n` VALUES("75","de_DE",""); -INSERT INTO `state_i18n` VALUES("75","en_US","Querétaro"); -INSERT INTO `state_i18n` VALUES("75","es_ES",""); -INSERT INTO `state_i18n` VALUES("75","fr_FR","Querétaro"); -INSERT INTO `state_i18n` VALUES("76","de_DE",""); -INSERT INTO `state_i18n` VALUES("76","en_US","Quintana Roo"); -INSERT INTO `state_i18n` VALUES("76","es_ES",""); -INSERT INTO `state_i18n` VALUES("76","fr_FR","Quintana Roo"); -INSERT INTO `state_i18n` VALUES("77","de_DE",""); -INSERT INTO `state_i18n` VALUES("77","en_US","San Luis Potosí"); -INSERT INTO `state_i18n` VALUES("77","es_ES",""); -INSERT INTO `state_i18n` VALUES("77","fr_FR","San Luis Potosí"); -INSERT INTO `state_i18n` VALUES("78","de_DE",""); -INSERT INTO `state_i18n` VALUES("78","en_US","Sinaloa"); -INSERT INTO `state_i18n` VALUES("78","es_ES",""); -INSERT INTO `state_i18n` VALUES("78","fr_FR","Sinaloa"); -INSERT INTO `state_i18n` VALUES("79","de_DE",""); -INSERT INTO `state_i18n` VALUES("79","en_US","Sonora"); -INSERT INTO `state_i18n` VALUES("79","es_ES",""); -INSERT INTO `state_i18n` VALUES("79","fr_FR","Sonora"); -INSERT INTO `state_i18n` VALUES("80","de_DE",""); -INSERT INTO `state_i18n` VALUES("80","en_US","Tabasco"); -INSERT INTO `state_i18n` VALUES("80","es_ES",""); -INSERT INTO `state_i18n` VALUES("80","fr_FR","Tabasco"); -INSERT INTO `state_i18n` VALUES("81","de_DE",""); -INSERT INTO `state_i18n` VALUES("81","en_US","Tamaulipas"); -INSERT INTO `state_i18n` VALUES("81","es_ES",""); -INSERT INTO `state_i18n` VALUES("81","fr_FR","Tamaulipas"); -INSERT INTO `state_i18n` VALUES("82","de_DE",""); -INSERT INTO `state_i18n` VALUES("82","en_US","Tlaxcala"); -INSERT INTO `state_i18n` VALUES("82","es_ES",""); -INSERT INTO `state_i18n` VALUES("82","fr_FR","Tlaxcala"); -INSERT INTO `state_i18n` VALUES("83","de_DE",""); -INSERT INTO `state_i18n` VALUES("83","en_US","Veracruz"); -INSERT INTO `state_i18n` VALUES("83","es_ES",""); -INSERT INTO `state_i18n` VALUES("83","fr_FR","Veracruz"); -INSERT INTO `state_i18n` VALUES("84","de_DE",""); -INSERT INTO `state_i18n` VALUES("84","en_US","Yucatán"); -INSERT INTO `state_i18n` VALUES("84","es_ES",""); -INSERT INTO `state_i18n` VALUES("84","fr_FR","Yucatán"); -INSERT INTO `state_i18n` VALUES("85","de_DE",""); -INSERT INTO `state_i18n` VALUES("85","en_US","Zacatecas"); -INSERT INTO `state_i18n` VALUES("85","es_ES",""); -INSERT INTO `state_i18n` VALUES("85","fr_FR","Zacatecas"); -INSERT INTO `state_i18n` VALUES("86","de_DE",""); -INSERT INTO `state_i18n` VALUES("86","en_US","Ontario"); -INSERT INTO `state_i18n` VALUES("86","es_ES",""); -INSERT INTO `state_i18n` VALUES("86","fr_FR","Ontario"); -INSERT INTO `state_i18n` VALUES("87","de_DE",""); -INSERT INTO `state_i18n` VALUES("87","en_US","Quebec"); -INSERT INTO `state_i18n` VALUES("87","es_ES",""); -INSERT INTO `state_i18n` VALUES("87","fr_FR","Québec"); -INSERT INTO `state_i18n` VALUES("88","de_DE",""); -INSERT INTO `state_i18n` VALUES("88","en_US","British Columbia"); -INSERT INTO `state_i18n` VALUES("88","es_ES",""); -INSERT INTO `state_i18n` VALUES("88","fr_FR","Colombie-Britannique"); -INSERT INTO `state_i18n` VALUES("89","de_DE",""); -INSERT INTO `state_i18n` VALUES("89","en_US","Alberta"); -INSERT INTO `state_i18n` VALUES("89","es_ES",""); -INSERT INTO `state_i18n` VALUES("89","fr_FR","Alberta"); -INSERT INTO `state_i18n` VALUES("90","de_DE",""); -INSERT INTO `state_i18n` VALUES("90","en_US","Manitoba"); -INSERT INTO `state_i18n` VALUES("90","es_ES",""); -INSERT INTO `state_i18n` VALUES("90","fr_FR","Manitoba"); -INSERT INTO `state_i18n` VALUES("91","de_DE",""); -INSERT INTO `state_i18n` VALUES("91","en_US","Saskatchewan"); -INSERT INTO `state_i18n` VALUES("91","es_ES",""); -INSERT INTO `state_i18n` VALUES("91","fr_FR","Saskatchewan"); -INSERT INTO `state_i18n` VALUES("92","de_DE",""); -INSERT INTO `state_i18n` VALUES("92","en_US","Nova Scotia"); -INSERT INTO `state_i18n` VALUES("92","es_ES",""); -INSERT INTO `state_i18n` VALUES("92","fr_FR","Nouvelle-Écosse"); -INSERT INTO `state_i18n` VALUES("93","de_DE",""); -INSERT INTO `state_i18n` VALUES("93","en_US","New Brunswick"); -INSERT INTO `state_i18n` VALUES("93","es_ES",""); -INSERT INTO `state_i18n` VALUES("93","fr_FR","Nouveau-Brunswick"); -INSERT INTO `state_i18n` VALUES("94","de_DE",""); -INSERT INTO `state_i18n` VALUES("94","en_US","Newfoundland and Labrador"); -INSERT INTO `state_i18n` VALUES("94","es_ES",""); -INSERT INTO `state_i18n` VALUES("94","fr_FR","Terre Neuve et Labrador"); -INSERT INTO `state_i18n` VALUES("95","de_DE",""); -INSERT INTO `state_i18n` VALUES("95","en_US","Prince Edward Island"); -INSERT INTO `state_i18n` VALUES("95","es_ES",""); -INSERT INTO `state_i18n` VALUES("95","fr_FR","Île-du-Prince-Édouard"); -INSERT INTO `state_i18n` VALUES("96","de_DE",""); -INSERT INTO `state_i18n` VALUES("96","en_US","Northwest Territories"); -INSERT INTO `state_i18n` VALUES("96","es_ES",""); -INSERT INTO `state_i18n` VALUES("96","fr_FR","Territoires du Nord-Ouest"); -INSERT INTO `state_i18n` VALUES("97","de_DE",""); -INSERT INTO `state_i18n` VALUES("97","en_US","Yukon"); -INSERT INTO `state_i18n` VALUES("97","es_ES",""); -INSERT INTO `state_i18n` VALUES("97","fr_FR","Yukon"); -INSERT INTO `state_i18n` VALUES("98","de_DE",""); -INSERT INTO `state_i18n` VALUES("98","en_US","Nunavut"); -INSERT INTO `state_i18n` VALUES("98","es_ES",""); -INSERT INTO `state_i18n` VALUES("98","fr_FR","Nunavut"); -INSERT INTO `state_i18n` VALUES("99","de_DE",""); -INSERT INTO `state_i18n` VALUES("99","en_US","Buenos Aires"); -INSERT INTO `state_i18n` VALUES("99","es_ES",""); -INSERT INTO `state_i18n` VALUES("99","fr_FR","Buenos Aires"); -INSERT INTO `state_i18n` VALUES("100","de_DE",""); -INSERT INTO `state_i18n` VALUES("100","en_US","Catamarca"); -INSERT INTO `state_i18n` VALUES("100","es_ES",""); -INSERT INTO `state_i18n` VALUES("100","fr_FR","Catamarca"); -INSERT INTO `state_i18n` VALUES("101","de_DE",""); -INSERT INTO `state_i18n` VALUES("101","en_US","Chaco"); -INSERT INTO `state_i18n` VALUES("101","es_ES",""); -INSERT INTO `state_i18n` VALUES("101","fr_FR","Chaco"); -INSERT INTO `state_i18n` VALUES("102","de_DE",""); -INSERT INTO `state_i18n` VALUES("102","en_US","Chubut"); -INSERT INTO `state_i18n` VALUES("102","es_ES",""); -INSERT INTO `state_i18n` VALUES("102","fr_FR","Chubut"); -INSERT INTO `state_i18n` VALUES("103","de_DE",""); -INSERT INTO `state_i18n` VALUES("103","en_US","Ciudad de Buenos Aires"); -INSERT INTO `state_i18n` VALUES("103","es_ES",""); -INSERT INTO `state_i18n` VALUES("103","fr_FR","Ciudad de Buenos Aires"); -INSERT INTO `state_i18n` VALUES("104","de_DE",""); -INSERT INTO `state_i18n` VALUES("104","en_US","Córdoba"); -INSERT INTO `state_i18n` VALUES("104","es_ES",""); -INSERT INTO `state_i18n` VALUES("104","fr_FR","Cordoba"); -INSERT INTO `state_i18n` VALUES("105","de_DE",""); -INSERT INTO `state_i18n` VALUES("105","en_US","Corrientes"); -INSERT INTO `state_i18n` VALUES("105","es_ES",""); -INSERT INTO `state_i18n` VALUES("105","fr_FR","Corrientes"); -INSERT INTO `state_i18n` VALUES("106","de_DE",""); -INSERT INTO `state_i18n` VALUES("106","en_US","Entre Ríos"); -INSERT INTO `state_i18n` VALUES("106","es_ES",""); -INSERT INTO `state_i18n` VALUES("106","fr_FR","Entre Ríos"); -INSERT INTO `state_i18n` VALUES("107","de_DE",""); -INSERT INTO `state_i18n` VALUES("107","en_US","Formosa"); -INSERT INTO `state_i18n` VALUES("107","es_ES",""); -INSERT INTO `state_i18n` VALUES("107","fr_FR","Formosa"); -INSERT INTO `state_i18n` VALUES("108","de_DE",""); -INSERT INTO `state_i18n` VALUES("108","en_US","Jujuy"); -INSERT INTO `state_i18n` VALUES("108","es_ES",""); -INSERT INTO `state_i18n` VALUES("108","fr_FR","Jujuy"); -INSERT INTO `state_i18n` VALUES("109","de_DE",""); -INSERT INTO `state_i18n` VALUES("109","en_US","La Pampa"); -INSERT INTO `state_i18n` VALUES("109","es_ES",""); -INSERT INTO `state_i18n` VALUES("109","fr_FR","La Pampa"); -INSERT INTO `state_i18n` VALUES("110","de_DE",""); -INSERT INTO `state_i18n` VALUES("110","en_US","La Rioja"); -INSERT INTO `state_i18n` VALUES("110","es_ES",""); -INSERT INTO `state_i18n` VALUES("110","fr_FR","La Rioja"); -INSERT INTO `state_i18n` VALUES("111","de_DE",""); -INSERT INTO `state_i18n` VALUES("111","en_US","Mendoza"); -INSERT INTO `state_i18n` VALUES("111","es_ES",""); -INSERT INTO `state_i18n` VALUES("111","fr_FR","Mendoza"); -INSERT INTO `state_i18n` VALUES("112","de_DE",""); -INSERT INTO `state_i18n` VALUES("112","en_US","Misiones"); -INSERT INTO `state_i18n` VALUES("112","es_ES",""); -INSERT INTO `state_i18n` VALUES("112","fr_FR","Misiones"); -INSERT INTO `state_i18n` VALUES("113","de_DE",""); -INSERT INTO `state_i18n` VALUES("113","en_US","Neuquén"); -INSERT INTO `state_i18n` VALUES("113","es_ES",""); -INSERT INTO `state_i18n` VALUES("113","fr_FR","Neuquén"); -INSERT INTO `state_i18n` VALUES("114","de_DE",""); -INSERT INTO `state_i18n` VALUES("114","en_US","Río Negro"); -INSERT INTO `state_i18n` VALUES("114","es_ES",""); -INSERT INTO `state_i18n` VALUES("114","fr_FR","Rio Negro"); -INSERT INTO `state_i18n` VALUES("115","de_DE",""); -INSERT INTO `state_i18n` VALUES("115","en_US","Salta"); -INSERT INTO `state_i18n` VALUES("115","es_ES",""); -INSERT INTO `state_i18n` VALUES("115","fr_FR","Salta"); -INSERT INTO `state_i18n` VALUES("116","de_DE",""); -INSERT INTO `state_i18n` VALUES("116","en_US","San Juan"); -INSERT INTO `state_i18n` VALUES("116","es_ES",""); -INSERT INTO `state_i18n` VALUES("116","fr_FR","San Juan"); -INSERT INTO `state_i18n` VALUES("117","de_DE",""); -INSERT INTO `state_i18n` VALUES("117","en_US","San Luis"); -INSERT INTO `state_i18n` VALUES("117","es_ES",""); -INSERT INTO `state_i18n` VALUES("117","fr_FR","San Luis"); -INSERT INTO `state_i18n` VALUES("118","de_DE",""); -INSERT INTO `state_i18n` VALUES("118","en_US","Santa Cruz"); -INSERT INTO `state_i18n` VALUES("118","es_ES",""); -INSERT INTO `state_i18n` VALUES("118","fr_FR","Santa Cruz"); -INSERT INTO `state_i18n` VALUES("119","de_DE",""); -INSERT INTO `state_i18n` VALUES("119","en_US","Santa Fe"); -INSERT INTO `state_i18n` VALUES("119","es_ES",""); -INSERT INTO `state_i18n` VALUES("119","fr_FR","Santa Fe"); -INSERT INTO `state_i18n` VALUES("120","de_DE",""); -INSERT INTO `state_i18n` VALUES("120","en_US","Santiago del Estero"); -INSERT INTO `state_i18n` VALUES("120","es_ES",""); -INSERT INTO `state_i18n` VALUES("120","fr_FR","Santiago del Estero"); -INSERT INTO `state_i18n` VALUES("121","de_DE",""); -INSERT INTO `state_i18n` VALUES("121","en_US","Tierra del Fuego"); -INSERT INTO `state_i18n` VALUES("121","es_ES",""); -INSERT INTO `state_i18n` VALUES("121","fr_FR","Tierra del Fuego"); -INSERT INTO `state_i18n` VALUES("122","de_DE",""); -INSERT INTO `state_i18n` VALUES("122","en_US","Tucumán"); -INSERT INTO `state_i18n` VALUES("122","es_ES",""); -INSERT INTO `state_i18n` VALUES("122","fr_FR","Tucuman"); -INSERT INTO `state_i18n` VALUES("123","de_DE",""); -INSERT INTO `state_i18n` VALUES("123","en_US","Agrigento"); -INSERT INTO `state_i18n` VALUES("123","es_ES",""); -INSERT INTO `state_i18n` VALUES("123","fr_FR","Agrigento"); -INSERT INTO `state_i18n` VALUES("124","de_DE",""); -INSERT INTO `state_i18n` VALUES("124","en_US","Alessandria"); -INSERT INTO `state_i18n` VALUES("124","es_ES",""); -INSERT INTO `state_i18n` VALUES("124","fr_FR","Alessandria"); -INSERT INTO `state_i18n` VALUES("125","de_DE",""); -INSERT INTO `state_i18n` VALUES("125","en_US","Ancona"); -INSERT INTO `state_i18n` VALUES("125","es_ES",""); -INSERT INTO `state_i18n` VALUES("125","fr_FR","Ancona"); -INSERT INTO `state_i18n` VALUES("126","de_DE",""); -INSERT INTO `state_i18n` VALUES("126","en_US","Aosta"); -INSERT INTO `state_i18n` VALUES("126","es_ES",""); -INSERT INTO `state_i18n` VALUES("126","fr_FR","Aosta"); -INSERT INTO `state_i18n` VALUES("127","de_DE",""); -INSERT INTO `state_i18n` VALUES("127","en_US","Arezzo"); -INSERT INTO `state_i18n` VALUES("127","es_ES",""); -INSERT INTO `state_i18n` VALUES("127","fr_FR","Arezzo"); -INSERT INTO `state_i18n` VALUES("128","de_DE",""); -INSERT INTO `state_i18n` VALUES("128","en_US","Ascoli Piceno"); -INSERT INTO `state_i18n` VALUES("128","es_ES",""); -INSERT INTO `state_i18n` VALUES("128","fr_FR","Ascoli Piceno"); -INSERT INTO `state_i18n` VALUES("129","de_DE",""); -INSERT INTO `state_i18n` VALUES("129","en_US","Asti"); -INSERT INTO `state_i18n` VALUES("129","es_ES",""); -INSERT INTO `state_i18n` VALUES("129","fr_FR","Asti"); -INSERT INTO `state_i18n` VALUES("130","de_DE",""); -INSERT INTO `state_i18n` VALUES("130","en_US","Avellino"); -INSERT INTO `state_i18n` VALUES("130","es_ES",""); -INSERT INTO `state_i18n` VALUES("130","fr_FR","Avellino"); -INSERT INTO `state_i18n` VALUES("131","de_DE",""); -INSERT INTO `state_i18n` VALUES("131","en_US","Bari"); -INSERT INTO `state_i18n` VALUES("131","es_ES",""); -INSERT INTO `state_i18n` VALUES("131","fr_FR","Bari"); -INSERT INTO `state_i18n` VALUES("132","de_DE",""); -INSERT INTO `state_i18n` VALUES("132","en_US","Barletta-Andria-Trani"); -INSERT INTO `state_i18n` VALUES("132","es_ES",""); -INSERT INTO `state_i18n` VALUES("132","fr_FR","Barletta-Andria-Trani"); -INSERT INTO `state_i18n` VALUES("133","de_DE",""); -INSERT INTO `state_i18n` VALUES("133","en_US","Belluno"); -INSERT INTO `state_i18n` VALUES("133","es_ES",""); -INSERT INTO `state_i18n` VALUES("133","fr_FR","Belluno"); -INSERT INTO `state_i18n` VALUES("134","de_DE",""); -INSERT INTO `state_i18n` VALUES("134","en_US","Benevento"); -INSERT INTO `state_i18n` VALUES("134","es_ES",""); -INSERT INTO `state_i18n` VALUES("134","fr_FR","Benevento"); -INSERT INTO `state_i18n` VALUES("135","de_DE",""); -INSERT INTO `state_i18n` VALUES("135","en_US","Bergamo"); -INSERT INTO `state_i18n` VALUES("135","es_ES",""); -INSERT INTO `state_i18n` VALUES("135","fr_FR","Bergamo"); -INSERT INTO `state_i18n` VALUES("136","de_DE",""); -INSERT INTO `state_i18n` VALUES("136","en_US","Biella"); -INSERT INTO `state_i18n` VALUES("136","es_ES",""); -INSERT INTO `state_i18n` VALUES("136","fr_FR","Biella"); -INSERT INTO `state_i18n` VALUES("137","de_DE",""); -INSERT INTO `state_i18n` VALUES("137","en_US","Bologna"); -INSERT INTO `state_i18n` VALUES("137","es_ES",""); -INSERT INTO `state_i18n` VALUES("137","fr_FR","Bologne"); -INSERT INTO `state_i18n` VALUES("138","de_DE",""); -INSERT INTO `state_i18n` VALUES("138","en_US","Bolzano"); -INSERT INTO `state_i18n` VALUES("138","es_ES",""); -INSERT INTO `state_i18n` VALUES("138","fr_FR","Bolzano"); -INSERT INTO `state_i18n` VALUES("139","de_DE",""); -INSERT INTO `state_i18n` VALUES("139","en_US","Brescia"); -INSERT INTO `state_i18n` VALUES("139","es_ES",""); -INSERT INTO `state_i18n` VALUES("139","fr_FR","Brescia"); -INSERT INTO `state_i18n` VALUES("140","de_DE",""); -INSERT INTO `state_i18n` VALUES("140","en_US","Brindisi"); -INSERT INTO `state_i18n` VALUES("140","es_ES",""); -INSERT INTO `state_i18n` VALUES("140","fr_FR","Brindisi"); -INSERT INTO `state_i18n` VALUES("141","de_DE",""); -INSERT INTO `state_i18n` VALUES("141","en_US","Cagliari"); -INSERT INTO `state_i18n` VALUES("141","es_ES",""); -INSERT INTO `state_i18n` VALUES("141","fr_FR","Cagliari"); -INSERT INTO `state_i18n` VALUES("142","de_DE",""); -INSERT INTO `state_i18n` VALUES("142","en_US","Caltanissetta"); -INSERT INTO `state_i18n` VALUES("142","es_ES",""); -INSERT INTO `state_i18n` VALUES("142","fr_FR","Caltanissetta"); -INSERT INTO `state_i18n` VALUES("143","de_DE",""); -INSERT INTO `state_i18n` VALUES("143","en_US","Campobasso"); -INSERT INTO `state_i18n` VALUES("143","es_ES",""); -INSERT INTO `state_i18n` VALUES("143","fr_FR","Campobasso"); -INSERT INTO `state_i18n` VALUES("144","de_DE",""); -INSERT INTO `state_i18n` VALUES("144","en_US","Carbonia-Iglesias"); -INSERT INTO `state_i18n` VALUES("144","es_ES",""); -INSERT INTO `state_i18n` VALUES("144","fr_FR","Carbonia-Iglesias"); -INSERT INTO `state_i18n` VALUES("145","de_DE",""); -INSERT INTO `state_i18n` VALUES("145","en_US","Caserta"); -INSERT INTO `state_i18n` VALUES("145","es_ES",""); -INSERT INTO `state_i18n` VALUES("145","fr_FR","Caserta"); -INSERT INTO `state_i18n` VALUES("146","de_DE",""); -INSERT INTO `state_i18n` VALUES("146","en_US","Catania"); -INSERT INTO `state_i18n` VALUES("146","es_ES",""); -INSERT INTO `state_i18n` VALUES("146","fr_FR","Catane"); -INSERT INTO `state_i18n` VALUES("147","de_DE",""); -INSERT INTO `state_i18n` VALUES("147","en_US","Catanzaro"); -INSERT INTO `state_i18n` VALUES("147","es_ES",""); -INSERT INTO `state_i18n` VALUES("147","fr_FR","Catanzaro"); -INSERT INTO `state_i18n` VALUES("148","de_DE",""); -INSERT INTO `state_i18n` VALUES("148","en_US","Chieti"); -INSERT INTO `state_i18n` VALUES("148","es_ES",""); -INSERT INTO `state_i18n` VALUES("148","fr_FR","Chieti"); -INSERT INTO `state_i18n` VALUES("149","de_DE",""); -INSERT INTO `state_i18n` VALUES("149","en_US","Como"); -INSERT INTO `state_i18n` VALUES("149","es_ES",""); -INSERT INTO `state_i18n` VALUES("149","fr_FR","Como"); -INSERT INTO `state_i18n` VALUES("150","de_DE",""); -INSERT INTO `state_i18n` VALUES("150","en_US","Cosenza"); -INSERT INTO `state_i18n` VALUES("150","es_ES",""); -INSERT INTO `state_i18n` VALUES("150","fr_FR","Cosenza"); -INSERT INTO `state_i18n` VALUES("151","de_DE",""); -INSERT INTO `state_i18n` VALUES("151","en_US","Cremona"); -INSERT INTO `state_i18n` VALUES("151","es_ES",""); -INSERT INTO `state_i18n` VALUES("151","fr_FR","Cremona"); -INSERT INTO `state_i18n` VALUES("152","de_DE",""); -INSERT INTO `state_i18n` VALUES("152","en_US","Crotone"); -INSERT INTO `state_i18n` VALUES("152","es_ES",""); -INSERT INTO `state_i18n` VALUES("152","fr_FR","Crotone"); -INSERT INTO `state_i18n` VALUES("153","de_DE",""); -INSERT INTO `state_i18n` VALUES("153","en_US","Cuneo"); -INSERT INTO `state_i18n` VALUES("153","es_ES",""); -INSERT INTO `state_i18n` VALUES("153","fr_FR","Cuneo"); -INSERT INTO `state_i18n` VALUES("154","de_DE",""); -INSERT INTO `state_i18n` VALUES("154","en_US","Enna"); -INSERT INTO `state_i18n` VALUES("154","es_ES",""); -INSERT INTO `state_i18n` VALUES("154","fr_FR","Enna"); -INSERT INTO `state_i18n` VALUES("155","de_DE",""); -INSERT INTO `state_i18n` VALUES("155","en_US","Fermo"); -INSERT INTO `state_i18n` VALUES("155","es_ES",""); -INSERT INTO `state_i18n` VALUES("155","fr_FR","Fermo"); -INSERT INTO `state_i18n` VALUES("156","de_DE",""); -INSERT INTO `state_i18n` VALUES("156","en_US","Ferrara"); -INSERT INTO `state_i18n` VALUES("156","es_ES",""); -INSERT INTO `state_i18n` VALUES("156","fr_FR","Ferrara"); -INSERT INTO `state_i18n` VALUES("157","de_DE",""); -INSERT INTO `state_i18n` VALUES("157","en_US","Firenze"); -INSERT INTO `state_i18n` VALUES("157","es_ES",""); -INSERT INTO `state_i18n` VALUES("157","fr_FR","Firenze"); -INSERT INTO `state_i18n` VALUES("158","de_DE",""); -INSERT INTO `state_i18n` VALUES("158","en_US","Foggia"); -INSERT INTO `state_i18n` VALUES("158","es_ES",""); -INSERT INTO `state_i18n` VALUES("158","fr_FR","Foggia"); -INSERT INTO `state_i18n` VALUES("159","de_DE",""); -INSERT INTO `state_i18n` VALUES("159","en_US","Forlì-Cesena"); -INSERT INTO `state_i18n` VALUES("159","es_ES",""); -INSERT INTO `state_i18n` VALUES("159","fr_FR","Forlì-Cesena"); -INSERT INTO `state_i18n` VALUES("160","de_DE",""); -INSERT INTO `state_i18n` VALUES("160","en_US","Frosinone"); -INSERT INTO `state_i18n` VALUES("160","es_ES",""); -INSERT INTO `state_i18n` VALUES("160","fr_FR","Frosinone"); -INSERT INTO `state_i18n` VALUES("161","de_DE",""); -INSERT INTO `state_i18n` VALUES("161","en_US","Genova"); -INSERT INTO `state_i18n` VALUES("161","es_ES",""); -INSERT INTO `state_i18n` VALUES("161","fr_FR","Genova"); -INSERT INTO `state_i18n` VALUES("162","de_DE",""); -INSERT INTO `state_i18n` VALUES("162","en_US","Gorizia"); -INSERT INTO `state_i18n` VALUES("162","es_ES",""); -INSERT INTO `state_i18n` VALUES("162","fr_FR","Gorizia"); -INSERT INTO `state_i18n` VALUES("163","de_DE",""); -INSERT INTO `state_i18n` VALUES("163","en_US","Grosseto"); -INSERT INTO `state_i18n` VALUES("163","es_ES",""); -INSERT INTO `state_i18n` VALUES("163","fr_FR","Grosseto"); -INSERT INTO `state_i18n` VALUES("164","de_DE",""); -INSERT INTO `state_i18n` VALUES("164","en_US","Imperia"); -INSERT INTO `state_i18n` VALUES("164","es_ES",""); -INSERT INTO `state_i18n` VALUES("164","fr_FR","Imperia"); -INSERT INTO `state_i18n` VALUES("165","de_DE",""); -INSERT INTO `state_i18n` VALUES("165","en_US","Isernia"); -INSERT INTO `state_i18n` VALUES("165","es_ES",""); -INSERT INTO `state_i18n` VALUES("165","fr_FR","Isernia"); -INSERT INTO `state_i18n` VALUES("166","de_DE",""); -INSERT INTO `state_i18n` VALUES("166","en_US","L\'Aquila"); -INSERT INTO `state_i18n` VALUES("166","es_ES",""); -INSERT INTO `state_i18n` VALUES("166","fr_FR","L\'Aquila"); -INSERT INTO `state_i18n` VALUES("167","de_DE",""); -INSERT INTO `state_i18n` VALUES("167","en_US","La Spezia"); -INSERT INTO `state_i18n` VALUES("167","es_ES",""); -INSERT INTO `state_i18n` VALUES("167","fr_FR","La Spezia"); -INSERT INTO `state_i18n` VALUES("168","de_DE",""); -INSERT INTO `state_i18n` VALUES("168","en_US","Latina"); -INSERT INTO `state_i18n` VALUES("168","es_ES",""); -INSERT INTO `state_i18n` VALUES("168","fr_FR","Latina"); -INSERT INTO `state_i18n` VALUES("169","de_DE",""); -INSERT INTO `state_i18n` VALUES("169","en_US","Lecce"); -INSERT INTO `state_i18n` VALUES("169","es_ES",""); -INSERT INTO `state_i18n` VALUES("169","fr_FR","Lecce"); -INSERT INTO `state_i18n` VALUES("170","de_DE",""); -INSERT INTO `state_i18n` VALUES("170","en_US","Lecco"); -INSERT INTO `state_i18n` VALUES("170","es_ES",""); -INSERT INTO `state_i18n` VALUES("170","fr_FR","Lecco"); -INSERT INTO `state_i18n` VALUES("171","de_DE",""); -INSERT INTO `state_i18n` VALUES("171","en_US","Livorno"); -INSERT INTO `state_i18n` VALUES("171","es_ES",""); -INSERT INTO `state_i18n` VALUES("171","fr_FR","Livourne"); -INSERT INTO `state_i18n` VALUES("172","de_DE",""); -INSERT INTO `state_i18n` VALUES("172","en_US","Lodi"); -INSERT INTO `state_i18n` VALUES("172","es_ES",""); -INSERT INTO `state_i18n` VALUES("172","fr_FR","Lodi"); -INSERT INTO `state_i18n` VALUES("173","de_DE",""); -INSERT INTO `state_i18n` VALUES("173","en_US","Lucca"); -INSERT INTO `state_i18n` VALUES("173","es_ES",""); -INSERT INTO `state_i18n` VALUES("173","fr_FR","Lucca"); -INSERT INTO `state_i18n` VALUES("174","de_DE",""); -INSERT INTO `state_i18n` VALUES("174","en_US","Macerata"); -INSERT INTO `state_i18n` VALUES("174","es_ES",""); -INSERT INTO `state_i18n` VALUES("174","fr_FR","Macerata"); -INSERT INTO `state_i18n` VALUES("175","de_DE",""); -INSERT INTO `state_i18n` VALUES("175","en_US","Mantova"); -INSERT INTO `state_i18n` VALUES("175","es_ES",""); -INSERT INTO `state_i18n` VALUES("175","fr_FR","Mantova"); -INSERT INTO `state_i18n` VALUES("176","de_DE",""); -INSERT INTO `state_i18n` VALUES("176","en_US","Massa"); -INSERT INTO `state_i18n` VALUES("176","es_ES",""); -INSERT INTO `state_i18n` VALUES("176","fr_FR","Massa"); -INSERT INTO `state_i18n` VALUES("177","de_DE",""); -INSERT INTO `state_i18n` VALUES("177","en_US","Matera"); -INSERT INTO `state_i18n` VALUES("177","es_ES",""); -INSERT INTO `state_i18n` VALUES("177","fr_FR","Matera"); -INSERT INTO `state_i18n` VALUES("178","de_DE",""); -INSERT INTO `state_i18n` VALUES("178","en_US","Medio Campidano"); -INSERT INTO `state_i18n` VALUES("178","es_ES",""); -INSERT INTO `state_i18n` VALUES("178","fr_FR","Medio Campidano"); -INSERT INTO `state_i18n` VALUES("179","de_DE",""); -INSERT INTO `state_i18n` VALUES("179","en_US","Messina"); -INSERT INTO `state_i18n` VALUES("179","es_ES",""); -INSERT INTO `state_i18n` VALUES("179","fr_FR","Messina"); -INSERT INTO `state_i18n` VALUES("180","de_DE",""); -INSERT INTO `state_i18n` VALUES("180","en_US","Milano"); -INSERT INTO `state_i18n` VALUES("180","es_ES",""); -INSERT INTO `state_i18n` VALUES("180","fr_FR","Milano"); -INSERT INTO `state_i18n` VALUES("181","de_DE",""); -INSERT INTO `state_i18n` VALUES("181","en_US","Modena"); -INSERT INTO `state_i18n` VALUES("181","es_ES",""); -INSERT INTO `state_i18n` VALUES("181","fr_FR","Modena"); -INSERT INTO `state_i18n` VALUES("182","de_DE",""); -INSERT INTO `state_i18n` VALUES("182","en_US","Monza e della Brianza"); -INSERT INTO `state_i18n` VALUES("182","es_ES",""); -INSERT INTO `state_i18n` VALUES("182","fr_FR","Monza e della Brianza"); -INSERT INTO `state_i18n` VALUES("183","de_DE",""); -INSERT INTO `state_i18n` VALUES("183","en_US","Napoli"); -INSERT INTO `state_i18n` VALUES("183","es_ES",""); -INSERT INTO `state_i18n` VALUES("183","fr_FR","Napoli"); -INSERT INTO `state_i18n` VALUES("184","de_DE",""); -INSERT INTO `state_i18n` VALUES("184","en_US","Novara"); -INSERT INTO `state_i18n` VALUES("184","es_ES",""); -INSERT INTO `state_i18n` VALUES("184","fr_FR","Novara"); -INSERT INTO `state_i18n` VALUES("185","de_DE",""); -INSERT INTO `state_i18n` VALUES("185","en_US","Nuoro"); -INSERT INTO `state_i18n` VALUES("185","es_ES",""); -INSERT INTO `state_i18n` VALUES("185","fr_FR","Nuoro"); -INSERT INTO `state_i18n` VALUES("186","de_DE",""); -INSERT INTO `state_i18n` VALUES("186","en_US","Ogliastra"); -INSERT INTO `state_i18n` VALUES("186","es_ES",""); -INSERT INTO `state_i18n` VALUES("186","fr_FR","Ogliastra"); -INSERT INTO `state_i18n` VALUES("187","de_DE",""); -INSERT INTO `state_i18n` VALUES("187","en_US","Olbia-Tempio"); -INSERT INTO `state_i18n` VALUES("187","es_ES",""); -INSERT INTO `state_i18n` VALUES("187","fr_FR","Olbia-Tempio"); -INSERT INTO `state_i18n` VALUES("188","de_DE",""); -INSERT INTO `state_i18n` VALUES("188","en_US","Oristano"); -INSERT INTO `state_i18n` VALUES("188","es_ES",""); -INSERT INTO `state_i18n` VALUES("188","fr_FR","Oristano"); -INSERT INTO `state_i18n` VALUES("189","de_DE",""); -INSERT INTO `state_i18n` VALUES("189","en_US","Padova"); -INSERT INTO `state_i18n` VALUES("189","es_ES",""); -INSERT INTO `state_i18n` VALUES("189","fr_FR","Padova"); -INSERT INTO `state_i18n` VALUES("190","de_DE",""); -INSERT INTO `state_i18n` VALUES("190","en_US","Palermo"); -INSERT INTO `state_i18n` VALUES("190","es_ES",""); -INSERT INTO `state_i18n` VALUES("190","fr_FR","Palerme"); -INSERT INTO `state_i18n` VALUES("191","de_DE",""); -INSERT INTO `state_i18n` VALUES("191","en_US","Parma"); -INSERT INTO `state_i18n` VALUES("191","es_ES",""); -INSERT INTO `state_i18n` VALUES("191","fr_FR","Parma"); -INSERT INTO `state_i18n` VALUES("192","de_DE",""); -INSERT INTO `state_i18n` VALUES("192","en_US","Pavia"); -INSERT INTO `state_i18n` VALUES("192","es_ES",""); -INSERT INTO `state_i18n` VALUES("192","fr_FR","Pavie"); -INSERT INTO `state_i18n` VALUES("193","de_DE",""); -INSERT INTO `state_i18n` VALUES("193","en_US","Perugia"); -INSERT INTO `state_i18n` VALUES("193","es_ES",""); -INSERT INTO `state_i18n` VALUES("193","fr_FR","Pérouse"); -INSERT INTO `state_i18n` VALUES("194","de_DE",""); -INSERT INTO `state_i18n` VALUES("194","en_US","Pesaro-Urbino"); -INSERT INTO `state_i18n` VALUES("194","es_ES",""); -INSERT INTO `state_i18n` VALUES("194","fr_FR","Pesaro-Urbino"); -INSERT INTO `state_i18n` VALUES("195","de_DE",""); -INSERT INTO `state_i18n` VALUES("195","en_US","Pescara"); -INSERT INTO `state_i18n` VALUES("195","es_ES",""); -INSERT INTO `state_i18n` VALUES("195","fr_FR","Pescara"); -INSERT INTO `state_i18n` VALUES("196","de_DE",""); -INSERT INTO `state_i18n` VALUES("196","en_US","Piacenza"); -INSERT INTO `state_i18n` VALUES("196","es_ES",""); -INSERT INTO `state_i18n` VALUES("196","fr_FR","Piacenza"); -INSERT INTO `state_i18n` VALUES("197","de_DE",""); -INSERT INTO `state_i18n` VALUES("197","en_US","Pisa"); -INSERT INTO `state_i18n` VALUES("197","es_ES",""); -INSERT INTO `state_i18n` VALUES("197","fr_FR","Pise"); -INSERT INTO `state_i18n` VALUES("198","de_DE",""); -INSERT INTO `state_i18n` VALUES("198","en_US","Pistoia"); -INSERT INTO `state_i18n` VALUES("198","es_ES",""); -INSERT INTO `state_i18n` VALUES("198","fr_FR","Pistoia"); -INSERT INTO `state_i18n` VALUES("199","de_DE",""); -INSERT INTO `state_i18n` VALUES("199","en_US","Pordenone"); -INSERT INTO `state_i18n` VALUES("199","es_ES",""); -INSERT INTO `state_i18n` VALUES("199","fr_FR","Pordenone"); -INSERT INTO `state_i18n` VALUES("200","de_DE",""); -INSERT INTO `state_i18n` VALUES("200","en_US","Potenza"); -INSERT INTO `state_i18n` VALUES("200","es_ES",""); -INSERT INTO `state_i18n` VALUES("200","fr_FR","Potenza"); -INSERT INTO `state_i18n` VALUES("201","de_DE",""); -INSERT INTO `state_i18n` VALUES("201","en_US","Prato"); -INSERT INTO `state_i18n` VALUES("201","es_ES",""); -INSERT INTO `state_i18n` VALUES("201","fr_FR","Prato"); -INSERT INTO `state_i18n` VALUES("202","de_DE",""); -INSERT INTO `state_i18n` VALUES("202","en_US","Ragusa"); -INSERT INTO `state_i18n` VALUES("202","es_ES",""); -INSERT INTO `state_i18n` VALUES("202","fr_FR","Ragusa"); -INSERT INTO `state_i18n` VALUES("203","de_DE",""); -INSERT INTO `state_i18n` VALUES("203","en_US","Ravenna"); -INSERT INTO `state_i18n` VALUES("203","es_ES",""); -INSERT INTO `state_i18n` VALUES("203","fr_FR","Ravenne"); -INSERT INTO `state_i18n` VALUES("204","de_DE",""); -INSERT INTO `state_i18n` VALUES("204","en_US","Reggio Calabria"); -INSERT INTO `state_i18n` VALUES("204","es_ES",""); -INSERT INTO `state_i18n` VALUES("204","fr_FR","Reggio de Calabre"); -INSERT INTO `state_i18n` VALUES("205","de_DE",""); -INSERT INTO `state_i18n` VALUES("205","en_US","Reggio Emilia"); -INSERT INTO `state_i18n` VALUES("205","es_ES",""); -INSERT INTO `state_i18n` VALUES("205","fr_FR","Reggio d\'Émilie"); -INSERT INTO `state_i18n` VALUES("206","de_DE",""); -INSERT INTO `state_i18n` VALUES("206","en_US","Rieti"); -INSERT INTO `state_i18n` VALUES("206","es_ES",""); -INSERT INTO `state_i18n` VALUES("206","fr_FR","Rieti"); -INSERT INTO `state_i18n` VALUES("207","de_DE",""); -INSERT INTO `state_i18n` VALUES("207","en_US","Rimini"); -INSERT INTO `state_i18n` VALUES("207","es_ES",""); -INSERT INTO `state_i18n` VALUES("207","fr_FR","Rimini"); -INSERT INTO `state_i18n` VALUES("208","de_DE",""); -INSERT INTO `state_i18n` VALUES("208","en_US","Roma"); -INSERT INTO `state_i18n` VALUES("208","es_ES",""); -INSERT INTO `state_i18n` VALUES("208","fr_FR","Rome"); -INSERT INTO `state_i18n` VALUES("209","de_DE",""); -INSERT INTO `state_i18n` VALUES("209","en_US","Rovigo"); -INSERT INTO `state_i18n` VALUES("209","es_ES",""); -INSERT INTO `state_i18n` VALUES("209","fr_FR","Rovigo"); -INSERT INTO `state_i18n` VALUES("210","de_DE",""); -INSERT INTO `state_i18n` VALUES("210","en_US","Salerno"); -INSERT INTO `state_i18n` VALUES("210","es_ES",""); -INSERT INTO `state_i18n` VALUES("210","fr_FR","Salerno"); -INSERT INTO `state_i18n` VALUES("211","de_DE",""); -INSERT INTO `state_i18n` VALUES("211","en_US","Sassari"); -INSERT INTO `state_i18n` VALUES("211","es_ES",""); -INSERT INTO `state_i18n` VALUES("211","fr_FR","Sassari"); -INSERT INTO `state_i18n` VALUES("212","de_DE",""); -INSERT INTO `state_i18n` VALUES("212","en_US","Savona"); -INSERT INTO `state_i18n` VALUES("212","es_ES",""); -INSERT INTO `state_i18n` VALUES("212","fr_FR","Savona"); -INSERT INTO `state_i18n` VALUES("213","de_DE",""); -INSERT INTO `state_i18n` VALUES("213","en_US","Siena"); -INSERT INTO `state_i18n` VALUES("213","es_ES",""); -INSERT INTO `state_i18n` VALUES("213","fr_FR","Siena"); -INSERT INTO `state_i18n` VALUES("214","de_DE",""); -INSERT INTO `state_i18n` VALUES("214","en_US","Siracusa"); -INSERT INTO `state_i18n` VALUES("214","es_ES",""); -INSERT INTO `state_i18n` VALUES("214","fr_FR","Siracusa"); -INSERT INTO `state_i18n` VALUES("215","de_DE",""); -INSERT INTO `state_i18n` VALUES("215","en_US","Sondrio"); -INSERT INTO `state_i18n` VALUES("215","es_ES",""); -INSERT INTO `state_i18n` VALUES("215","fr_FR","Sondrio"); -INSERT INTO `state_i18n` VALUES("216","de_DE",""); -INSERT INTO `state_i18n` VALUES("216","en_US","Taranto"); -INSERT INTO `state_i18n` VALUES("216","es_ES",""); -INSERT INTO `state_i18n` VALUES("216","fr_FR","Taranto"); -INSERT INTO `state_i18n` VALUES("217","de_DE",""); -INSERT INTO `state_i18n` VALUES("217","en_US","Teramo"); -INSERT INTO `state_i18n` VALUES("217","es_ES",""); -INSERT INTO `state_i18n` VALUES("217","fr_FR","Teramo"); -INSERT INTO `state_i18n` VALUES("218","de_DE",""); -INSERT INTO `state_i18n` VALUES("218","en_US","Terni"); -INSERT INTO `state_i18n` VALUES("218","es_ES",""); -INSERT INTO `state_i18n` VALUES("218","fr_FR","Terni"); -INSERT INTO `state_i18n` VALUES("219","de_DE",""); -INSERT INTO `state_i18n` VALUES("219","en_US","Torino"); -INSERT INTO `state_i18n` VALUES("219","es_ES",""); -INSERT INTO `state_i18n` VALUES("219","fr_FR","Torino"); -INSERT INTO `state_i18n` VALUES("220","de_DE",""); -INSERT INTO `state_i18n` VALUES("220","en_US","Trapani"); -INSERT INTO `state_i18n` VALUES("220","es_ES",""); -INSERT INTO `state_i18n` VALUES("220","fr_FR","Trapani"); -INSERT INTO `state_i18n` VALUES("221","de_DE",""); -INSERT INTO `state_i18n` VALUES("221","en_US","Trento"); -INSERT INTO `state_i18n` VALUES("221","es_ES",""); -INSERT INTO `state_i18n` VALUES("221","fr_FR","Trento"); -INSERT INTO `state_i18n` VALUES("222","de_DE",""); -INSERT INTO `state_i18n` VALUES("222","en_US","Treviso"); -INSERT INTO `state_i18n` VALUES("222","es_ES",""); -INSERT INTO `state_i18n` VALUES("222","fr_FR","Treviso"); -INSERT INTO `state_i18n` VALUES("223","de_DE",""); -INSERT INTO `state_i18n` VALUES("223","en_US","Trieste"); -INSERT INTO `state_i18n` VALUES("223","es_ES",""); -INSERT INTO `state_i18n` VALUES("223","fr_FR","Trieste"); -INSERT INTO `state_i18n` VALUES("224","de_DE",""); -INSERT INTO `state_i18n` VALUES("224","en_US","Udine"); -INSERT INTO `state_i18n` VALUES("224","es_ES",""); -INSERT INTO `state_i18n` VALUES("224","fr_FR","Udine"); -INSERT INTO `state_i18n` VALUES("225","de_DE",""); -INSERT INTO `state_i18n` VALUES("225","en_US","Varese"); -INSERT INTO `state_i18n` VALUES("225","es_ES",""); -INSERT INTO `state_i18n` VALUES("225","fr_FR","Varese"); -INSERT INTO `state_i18n` VALUES("226","de_DE",""); -INSERT INTO `state_i18n` VALUES("226","en_US","Venezia"); -INSERT INTO `state_i18n` VALUES("226","es_ES",""); -INSERT INTO `state_i18n` VALUES("226","fr_FR","Venezia"); -INSERT INTO `state_i18n` VALUES("227","de_DE",""); -INSERT INTO `state_i18n` VALUES("227","en_US","Verbano-Cusio-Ossola"); -INSERT INTO `state_i18n` VALUES("227","es_ES",""); -INSERT INTO `state_i18n` VALUES("227","fr_FR","Verbano-Cusio-Ossola"); -INSERT INTO `state_i18n` VALUES("228","de_DE",""); -INSERT INTO `state_i18n` VALUES("228","en_US","Vercelli"); -INSERT INTO `state_i18n` VALUES("228","es_ES",""); -INSERT INTO `state_i18n` VALUES("228","fr_FR","Vercelli"); -INSERT INTO `state_i18n` VALUES("229","de_DE",""); -INSERT INTO `state_i18n` VALUES("229","en_US","Verona"); -INSERT INTO `state_i18n` VALUES("229","es_ES",""); -INSERT INTO `state_i18n` VALUES("229","fr_FR","Vérone"); -INSERT INTO `state_i18n` VALUES("230","de_DE",""); -INSERT INTO `state_i18n` VALUES("230","en_US","Vibo Valentia"); -INSERT INTO `state_i18n` VALUES("230","es_ES",""); -INSERT INTO `state_i18n` VALUES("230","fr_FR","Vibo Valentia"); -INSERT INTO `state_i18n` VALUES("231","de_DE",""); -INSERT INTO `state_i18n` VALUES("231","en_US","Vicenza"); -INSERT INTO `state_i18n` VALUES("231","es_ES",""); -INSERT INTO `state_i18n` VALUES("231","fr_FR","Vicenza"); -INSERT INTO `state_i18n` VALUES("232","de_DE",""); -INSERT INTO `state_i18n` VALUES("232","en_US","Viterbo"); -INSERT INTO `state_i18n` VALUES("232","es_ES",""); -INSERT INTO `state_i18n` VALUES("232","fr_FR","Viterbo"); -INSERT INTO `state_i18n` VALUES("233","de_DE",""); -INSERT INTO `state_i18n` VALUES("233","en_US","Aceh"); -INSERT INTO `state_i18n` VALUES("233","es_ES",""); -INSERT INTO `state_i18n` VALUES("233","fr_FR","Aceh"); -INSERT INTO `state_i18n` VALUES("234","de_DE",""); -INSERT INTO `state_i18n` VALUES("234","en_US","Bali"); -INSERT INTO `state_i18n` VALUES("234","es_ES",""); -INSERT INTO `state_i18n` VALUES("234","fr_FR","Bali"); -INSERT INTO `state_i18n` VALUES("235","de_DE",""); -INSERT INTO `state_i18n` VALUES("235","en_US","Bangka"); -INSERT INTO `state_i18n` VALUES("235","es_ES",""); -INSERT INTO `state_i18n` VALUES("235","fr_FR","Bangka"); -INSERT INTO `state_i18n` VALUES("236","de_DE",""); -INSERT INTO `state_i18n` VALUES("236","en_US","Banten"); -INSERT INTO `state_i18n` VALUES("236","es_ES",""); -INSERT INTO `state_i18n` VALUES("236","fr_FR","Banten"); -INSERT INTO `state_i18n` VALUES("237","de_DE",""); -INSERT INTO `state_i18n` VALUES("237","en_US","Bengkulu"); -INSERT INTO `state_i18n` VALUES("237","es_ES",""); -INSERT INTO `state_i18n` VALUES("237","fr_FR","Bengkulu"); -INSERT INTO `state_i18n` VALUES("238","de_DE",""); -INSERT INTO `state_i18n` VALUES("238","en_US","Central Java"); -INSERT INTO `state_i18n` VALUES("238","es_ES",""); -INSERT INTO `state_i18n` VALUES("238","fr_FR","Central Java"); -INSERT INTO `state_i18n` VALUES("239","de_DE",""); -INSERT INTO `state_i18n` VALUES("239","en_US","Central Kalimantan"); -INSERT INTO `state_i18n` VALUES("239","es_ES",""); -INSERT INTO `state_i18n` VALUES("239","fr_FR","Kalimantan occidental"); -INSERT INTO `state_i18n` VALUES("240","de_DE",""); -INSERT INTO `state_i18n` VALUES("240","en_US","Central Sulawesi"); -INSERT INTO `state_i18n` VALUES("240","es_ES",""); -INSERT INTO `state_i18n` VALUES("240","fr_FR","Sulawesi central"); -INSERT INTO `state_i18n` VALUES("241","de_DE",""); -INSERT INTO `state_i18n` VALUES("241","en_US","Coat of arms of East Java"); -INSERT INTO `state_i18n` VALUES("241","es_ES",""); -INSERT INTO `state_i18n` VALUES("241","fr_FR","Coat of arms of East Java"); -INSERT INTO `state_i18n` VALUES("242","de_DE",""); -INSERT INTO `state_i18n` VALUES("242","en_US","East kalimantan"); -INSERT INTO `state_i18n` VALUES("242","es_ES",""); -INSERT INTO `state_i18n` VALUES("242","fr_FR","Kalimantan oriental"); -INSERT INTO `state_i18n` VALUES("243","de_DE",""); -INSERT INTO `state_i18n` VALUES("243","en_US","East Nusa Tenggara"); -INSERT INTO `state_i18n` VALUES("243","es_ES",""); -INSERT INTO `state_i18n` VALUES("243","fr_FR","Nusa Tenggara oriental"); -INSERT INTO `state_i18n` VALUES("244","de_DE",""); -INSERT INTO `state_i18n` VALUES("244","en_US","Lambang propinsi"); -INSERT INTO `state_i18n` VALUES("244","es_ES",""); -INSERT INTO `state_i18n` VALUES("244","fr_FR","Lambang propinsi"); -INSERT INTO `state_i18n` VALUES("245","de_DE",""); -INSERT INTO `state_i18n` VALUES("245","en_US","Jakarta"); -INSERT INTO `state_i18n` VALUES("245","es_ES",""); -INSERT INTO `state_i18n` VALUES("245","fr_FR","Jakarta"); -INSERT INTO `state_i18n` VALUES("246","de_DE",""); -INSERT INTO `state_i18n` VALUES("246","en_US","Jambi"); -INSERT INTO `state_i18n` VALUES("246","es_ES",""); -INSERT INTO `state_i18n` VALUES("246","fr_FR","Jambi"); -INSERT INTO `state_i18n` VALUES("247","de_DE",""); -INSERT INTO `state_i18n` VALUES("247","en_US","Lampung"); -INSERT INTO `state_i18n` VALUES("247","es_ES",""); -INSERT INTO `state_i18n` VALUES("247","fr_FR","Lampung"); -INSERT INTO `state_i18n` VALUES("248","de_DE",""); -INSERT INTO `state_i18n` VALUES("248","en_US","Maluku"); -INSERT INTO `state_i18n` VALUES("248","es_ES",""); -INSERT INTO `state_i18n` VALUES("248","fr_FR","Maluku"); -INSERT INTO `state_i18n` VALUES("249","de_DE",""); -INSERT INTO `state_i18n` VALUES("249","en_US","North Maluku"); -INSERT INTO `state_i18n` VALUES("249","es_ES",""); -INSERT INTO `state_i18n` VALUES("249","fr_FR","Maluku du Nord"); -INSERT INTO `state_i18n` VALUES("250","de_DE",""); -INSERT INTO `state_i18n` VALUES("250","en_US","North Sulawesi"); -INSERT INTO `state_i18n` VALUES("250","es_ES",""); -INSERT INTO `state_i18n` VALUES("250","fr_FR","Sulawesi du Nord"); -INSERT INTO `state_i18n` VALUES("251","de_DE",""); -INSERT INTO `state_i18n` VALUES("251","en_US","North Sumatra"); -INSERT INTO `state_i18n` VALUES("251","es_ES",""); -INSERT INTO `state_i18n` VALUES("251","fr_FR","Sumatra-Nord"); -INSERT INTO `state_i18n` VALUES("252","de_DE",""); -INSERT INTO `state_i18n` VALUES("252","en_US","Papua"); -INSERT INTO `state_i18n` VALUES("252","es_ES",""); -INSERT INTO `state_i18n` VALUES("252","fr_FR","Papouasie"); -INSERT INTO `state_i18n` VALUES("253","de_DE",""); -INSERT INTO `state_i18n` VALUES("253","en_US","Riau"); -INSERT INTO `state_i18n` VALUES("253","es_ES",""); -INSERT INTO `state_i18n` VALUES("253","fr_FR","Riau"); -INSERT INTO `state_i18n` VALUES("254","de_DE",""); -INSERT INTO `state_i18n` VALUES("254","en_US","Lambang Riau"); -INSERT INTO `state_i18n` VALUES("254","es_ES",""); -INSERT INTO `state_i18n` VALUES("254","fr_FR","Lambang Riau"); -INSERT INTO `state_i18n` VALUES("255","de_DE",""); -INSERT INTO `state_i18n` VALUES("255","en_US","Southeast Sulawesi"); -INSERT INTO `state_i18n` VALUES("255","es_ES",""); -INSERT INTO `state_i18n` VALUES("255","fr_FR","Sulawesi du sud-est"); -INSERT INTO `state_i18n` VALUES("256","de_DE",""); -INSERT INTO `state_i18n` VALUES("256","en_US","South Kalimantan"); -INSERT INTO `state_i18n` VALUES("256","es_ES",""); -INSERT INTO `state_i18n` VALUES("256","fr_FR","Kalimantan du Sud"); -INSERT INTO `state_i18n` VALUES("257","de_DE",""); -INSERT INTO `state_i18n` VALUES("257","en_US","South Sulawesi"); -INSERT INTO `state_i18n` VALUES("257","es_ES",""); -INSERT INTO `state_i18n` VALUES("257","fr_FR","Sulawesi du Sud"); -INSERT INTO `state_i18n` VALUES("258","de_DE",""); -INSERT INTO `state_i18n` VALUES("258","en_US","South Sumatra"); -INSERT INTO `state_i18n` VALUES("258","es_ES",""); -INSERT INTO `state_i18n` VALUES("258","fr_FR","Sumatra du Sud"); -INSERT INTO `state_i18n` VALUES("259","de_DE",""); -INSERT INTO `state_i18n` VALUES("259","en_US","West Java"); -INSERT INTO `state_i18n` VALUES("259","es_ES",""); -INSERT INTO `state_i18n` VALUES("259","fr_FR","Java-Ouest"); -INSERT INTO `state_i18n` VALUES("260","de_DE",""); -INSERT INTO `state_i18n` VALUES("260","en_US","West Kalimantan"); -INSERT INTO `state_i18n` VALUES("260","es_ES",""); -INSERT INTO `state_i18n` VALUES("260","fr_FR","Kalimantan occidental"); -INSERT INTO `state_i18n` VALUES("261","de_DE",""); -INSERT INTO `state_i18n` VALUES("261","en_US","West Nusa Tenggara"); -INSERT INTO `state_i18n` VALUES("261","es_ES",""); -INSERT INTO `state_i18n` VALUES("261","fr_FR","Nusa Tenggara occidental"); -INSERT INTO `state_i18n` VALUES("262","de_DE",""); -INSERT INTO `state_i18n` VALUES("262","en_US","Lambang Provinsi Papua Barat"); -INSERT INTO `state_i18n` VALUES("262","es_ES",""); -INSERT INTO `state_i18n` VALUES("262","fr_FR","Lambang Provinsi Papua Barat"); -INSERT INTO `state_i18n` VALUES("263","de_DE",""); -INSERT INTO `state_i18n` VALUES("263","en_US","West Sulawesi"); -INSERT INTO `state_i18n` VALUES("263","es_ES",""); -INSERT INTO `state_i18n` VALUES("263","fr_FR","Sulawesi occidental"); -INSERT INTO `state_i18n` VALUES("264","de_DE",""); -INSERT INTO `state_i18n` VALUES("264","en_US","West Sumatra"); -INSERT INTO `state_i18n` VALUES("264","es_ES",""); -INSERT INTO `state_i18n` VALUES("264","fr_FR","Sumatra occidental"); -INSERT INTO `state_i18n` VALUES("265","de_DE",""); -INSERT INTO `state_i18n` VALUES("265","en_US","Yogyakarta"); -INSERT INTO `state_i18n` VALUES("265","es_ES",""); -INSERT INTO `state_i18n` VALUES("265","fr_FR","Yogyakarta"); -INSERT INTO `state_i18n` VALUES("266","de_DE",""); -INSERT INTO `state_i18n` VALUES("266","en_US","Aichi"); -INSERT INTO `state_i18n` VALUES("266","es_ES",""); -INSERT INTO `state_i18n` VALUES("266","fr_FR","Aichi"); -INSERT INTO `state_i18n` VALUES("267","de_DE",""); -INSERT INTO `state_i18n` VALUES("267","en_US","Akita"); -INSERT INTO `state_i18n` VALUES("267","es_ES",""); -INSERT INTO `state_i18n` VALUES("267","fr_FR","Akita"); -INSERT INTO `state_i18n` VALUES("268","de_DE",""); -INSERT INTO `state_i18n` VALUES("268","en_US","Aomori"); -INSERT INTO `state_i18n` VALUES("268","es_ES",""); -INSERT INTO `state_i18n` VALUES("268","fr_FR","Aomori"); -INSERT INTO `state_i18n` VALUES("269","de_DE",""); -INSERT INTO `state_i18n` VALUES("269","en_US","Chiba"); -INSERT INTO `state_i18n` VALUES("269","es_ES",""); -INSERT INTO `state_i18n` VALUES("269","fr_FR","Chiba"); -INSERT INTO `state_i18n` VALUES("270","de_DE",""); -INSERT INTO `state_i18n` VALUES("270","en_US","Ehime"); -INSERT INTO `state_i18n` VALUES("270","es_ES",""); -INSERT INTO `state_i18n` VALUES("270","fr_FR","Ehime"); -INSERT INTO `state_i18n` VALUES("271","de_DE",""); -INSERT INTO `state_i18n` VALUES("271","en_US","Fukui"); -INSERT INTO `state_i18n` VALUES("271","es_ES",""); -INSERT INTO `state_i18n` VALUES("271","fr_FR","Fukui"); -INSERT INTO `state_i18n` VALUES("272","de_DE",""); -INSERT INTO `state_i18n` VALUES("272","en_US","Fukuoka"); -INSERT INTO `state_i18n` VALUES("272","es_ES",""); -INSERT INTO `state_i18n` VALUES("272","fr_FR","Fukuoka"); -INSERT INTO `state_i18n` VALUES("273","de_DE",""); -INSERT INTO `state_i18n` VALUES("273","en_US","Fukushima"); -INSERT INTO `state_i18n` VALUES("273","es_ES",""); -INSERT INTO `state_i18n` VALUES("273","fr_FR","Fukushima"); -INSERT INTO `state_i18n` VALUES("274","de_DE",""); -INSERT INTO `state_i18n` VALUES("274","en_US","Gifu"); -INSERT INTO `state_i18n` VALUES("274","es_ES",""); -INSERT INTO `state_i18n` VALUES("274","fr_FR","Gifu"); -INSERT INTO `state_i18n` VALUES("275","de_DE",""); -INSERT INTO `state_i18n` VALUES("275","en_US","Gunma"); -INSERT INTO `state_i18n` VALUES("275","es_ES",""); -INSERT INTO `state_i18n` VALUES("275","fr_FR","Gunma"); -INSERT INTO `state_i18n` VALUES("276","de_DE",""); -INSERT INTO `state_i18n` VALUES("276","en_US","Hiroshima"); -INSERT INTO `state_i18n` VALUES("276","es_ES",""); -INSERT INTO `state_i18n` VALUES("276","fr_FR","Hiroshima"); -INSERT INTO `state_i18n` VALUES("277","de_DE",""); -INSERT INTO `state_i18n` VALUES("277","en_US","Hokkaido"); -INSERT INTO `state_i18n` VALUES("277","es_ES",""); -INSERT INTO `state_i18n` VALUES("277","fr_FR","Hokkaido"); -INSERT INTO `state_i18n` VALUES("278","de_DE",""); -INSERT INTO `state_i18n` VALUES("278","en_US","Hyogo"); -INSERT INTO `state_i18n` VALUES("278","es_ES",""); -INSERT INTO `state_i18n` VALUES("278","fr_FR","Hyogo"); -INSERT INTO `state_i18n` VALUES("279","de_DE",""); -INSERT INTO `state_i18n` VALUES("279","en_US","Ibaraki"); -INSERT INTO `state_i18n` VALUES("279","es_ES",""); -INSERT INTO `state_i18n` VALUES("279","fr_FR","Ibaraki"); -INSERT INTO `state_i18n` VALUES("280","de_DE",""); -INSERT INTO `state_i18n` VALUES("280","en_US","Ishikawa"); -INSERT INTO `state_i18n` VALUES("280","es_ES",""); -INSERT INTO `state_i18n` VALUES("280","fr_FR","Ishikawa"); -INSERT INTO `state_i18n` VALUES("281","de_DE",""); -INSERT INTO `state_i18n` VALUES("281","en_US","Iwate"); -INSERT INTO `state_i18n` VALUES("281","es_ES",""); -INSERT INTO `state_i18n` VALUES("281","fr_FR","Iwate"); -INSERT INTO `state_i18n` VALUES("282","de_DE",""); -INSERT INTO `state_i18n` VALUES("282","en_US","Kagawa"); -INSERT INTO `state_i18n` VALUES("282","es_ES",""); -INSERT INTO `state_i18n` VALUES("282","fr_FR","Kagawa"); -INSERT INTO `state_i18n` VALUES("283","de_DE",""); -INSERT INTO `state_i18n` VALUES("283","en_US","Kagoshima"); -INSERT INTO `state_i18n` VALUES("283","es_ES",""); -INSERT INTO `state_i18n` VALUES("283","fr_FR","Kagoshima"); -INSERT INTO `state_i18n` VALUES("284","de_DE",""); -INSERT INTO `state_i18n` VALUES("284","en_US","Kanagawa"); -INSERT INTO `state_i18n` VALUES("284","es_ES",""); -INSERT INTO `state_i18n` VALUES("284","fr_FR","Kanagawa"); -INSERT INTO `state_i18n` VALUES("285","de_DE",""); -INSERT INTO `state_i18n` VALUES("285","en_US","Kochi"); -INSERT INTO `state_i18n` VALUES("285","es_ES",""); -INSERT INTO `state_i18n` VALUES("285","fr_FR","Kochi"); -INSERT INTO `state_i18n` VALUES("286","de_DE",""); -INSERT INTO `state_i18n` VALUES("286","en_US","Kumamoto"); -INSERT INTO `state_i18n` VALUES("286","es_ES",""); -INSERT INTO `state_i18n` VALUES("286","fr_FR","Kumamoto"); -INSERT INTO `state_i18n` VALUES("287","de_DE",""); -INSERT INTO `state_i18n` VALUES("287","en_US","Kyoto"); -INSERT INTO `state_i18n` VALUES("287","es_ES",""); -INSERT INTO `state_i18n` VALUES("287","fr_FR","Kyoto"); -INSERT INTO `state_i18n` VALUES("288","de_DE",""); -INSERT INTO `state_i18n` VALUES("288","en_US","Mie"); -INSERT INTO `state_i18n` VALUES("288","es_ES",""); -INSERT INTO `state_i18n` VALUES("288","fr_FR","Mie"); -INSERT INTO `state_i18n` VALUES("289","de_DE",""); -INSERT INTO `state_i18n` VALUES("289","en_US","Miyagi"); -INSERT INTO `state_i18n` VALUES("289","es_ES",""); -INSERT INTO `state_i18n` VALUES("289","fr_FR","Miyagi"); -INSERT INTO `state_i18n` VALUES("290","de_DE",""); -INSERT INTO `state_i18n` VALUES("290","en_US","Miyazaki"); -INSERT INTO `state_i18n` VALUES("290","es_ES",""); -INSERT INTO `state_i18n` VALUES("290","fr_FR","Miyazaki"); -INSERT INTO `state_i18n` VALUES("291","de_DE",""); -INSERT INTO `state_i18n` VALUES("291","en_US","Nagano"); -INSERT INTO `state_i18n` VALUES("291","es_ES",""); -INSERT INTO `state_i18n` VALUES("291","fr_FR","Nagano"); -INSERT INTO `state_i18n` VALUES("292","de_DE",""); -INSERT INTO `state_i18n` VALUES("292","en_US","Nagasaki"); -INSERT INTO `state_i18n` VALUES("292","es_ES",""); -INSERT INTO `state_i18n` VALUES("292","fr_FR","Nagasaki"); -INSERT INTO `state_i18n` VALUES("293","de_DE",""); -INSERT INTO `state_i18n` VALUES("293","en_US","Nara"); -INSERT INTO `state_i18n` VALUES("293","es_ES",""); -INSERT INTO `state_i18n` VALUES("293","fr_FR","Nara"); -INSERT INTO `state_i18n` VALUES("294","de_DE",""); -INSERT INTO `state_i18n` VALUES("294","en_US","Niigata"); -INSERT INTO `state_i18n` VALUES("294","es_ES",""); -INSERT INTO `state_i18n` VALUES("294","fr_FR","Niigata"); -INSERT INTO `state_i18n` VALUES("295","de_DE",""); -INSERT INTO `state_i18n` VALUES("295","en_US","Oita"); -INSERT INTO `state_i18n` VALUES("295","es_ES",""); -INSERT INTO `state_i18n` VALUES("295","fr_FR","Oita"); -INSERT INTO `state_i18n` VALUES("296","de_DE",""); -INSERT INTO `state_i18n` VALUES("296","en_US","Okayama"); -INSERT INTO `state_i18n` VALUES("296","es_ES",""); -INSERT INTO `state_i18n` VALUES("296","fr_FR","Okayama"); -INSERT INTO `state_i18n` VALUES("297","de_DE",""); -INSERT INTO `state_i18n` VALUES("297","en_US","Okinawa"); -INSERT INTO `state_i18n` VALUES("297","es_ES",""); -INSERT INTO `state_i18n` VALUES("297","fr_FR","Okinawa"); -INSERT INTO `state_i18n` VALUES("298","de_DE",""); -INSERT INTO `state_i18n` VALUES("298","en_US","Osaka"); -INSERT INTO `state_i18n` VALUES("298","es_ES",""); -INSERT INTO `state_i18n` VALUES("298","fr_FR","Osaka"); -INSERT INTO `state_i18n` VALUES("299","de_DE",""); -INSERT INTO `state_i18n` VALUES("299","en_US","Saga"); -INSERT INTO `state_i18n` VALUES("299","es_ES",""); -INSERT INTO `state_i18n` VALUES("299","fr_FR","Saga"); -INSERT INTO `state_i18n` VALUES("300","de_DE",""); -INSERT INTO `state_i18n` VALUES("300","en_US","Saitama"); -INSERT INTO `state_i18n` VALUES("300","es_ES",""); -INSERT INTO `state_i18n` VALUES("300","fr_FR","Saitama"); -INSERT INTO `state_i18n` VALUES("301","de_DE",""); -INSERT INTO `state_i18n` VALUES("301","en_US","Shiga"); -INSERT INTO `state_i18n` VALUES("301","es_ES",""); -INSERT INTO `state_i18n` VALUES("301","fr_FR","Shiga"); -INSERT INTO `state_i18n` VALUES("302","de_DE",""); -INSERT INTO `state_i18n` VALUES("302","en_US","Shimane"); -INSERT INTO `state_i18n` VALUES("302","es_ES",""); -INSERT INTO `state_i18n` VALUES("302","fr_FR","Shimane"); -INSERT INTO `state_i18n` VALUES("303","de_DE",""); -INSERT INTO `state_i18n` VALUES("303","en_US","Shizuoka"); -INSERT INTO `state_i18n` VALUES("303","es_ES",""); -INSERT INTO `state_i18n` VALUES("303","fr_FR","Shizuoka"); -INSERT INTO `state_i18n` VALUES("304","de_DE",""); -INSERT INTO `state_i18n` VALUES("304","en_US","Tochigi"); -INSERT INTO `state_i18n` VALUES("304","es_ES",""); -INSERT INTO `state_i18n` VALUES("304","fr_FR","Tochigi"); -INSERT INTO `state_i18n` VALUES("305","de_DE",""); -INSERT INTO `state_i18n` VALUES("305","en_US","Tokushima"); -INSERT INTO `state_i18n` VALUES("305","es_ES",""); -INSERT INTO `state_i18n` VALUES("305","fr_FR","Tokushima"); -INSERT INTO `state_i18n` VALUES("306","de_DE",""); -INSERT INTO `state_i18n` VALUES("306","en_US","Tokyo"); -INSERT INTO `state_i18n` VALUES("306","es_ES",""); -INSERT INTO `state_i18n` VALUES("306","fr_FR","Tokyo"); -INSERT INTO `state_i18n` VALUES("307","de_DE",""); -INSERT INTO `state_i18n` VALUES("307","en_US","Tottori"); -INSERT INTO `state_i18n` VALUES("307","es_ES",""); -INSERT INTO `state_i18n` VALUES("307","fr_FR","Tottori"); -INSERT INTO `state_i18n` VALUES("308","de_DE",""); -INSERT INTO `state_i18n` VALUES("308","en_US","Toyama"); -INSERT INTO `state_i18n` VALUES("308","es_ES",""); -INSERT INTO `state_i18n` VALUES("308","fr_FR","Toyama"); -INSERT INTO `state_i18n` VALUES("309","de_DE",""); -INSERT INTO `state_i18n` VALUES("309","en_US","Wakayama"); -INSERT INTO `state_i18n` VALUES("309","es_ES",""); -INSERT INTO `state_i18n` VALUES("309","fr_FR","Wakayama"); -INSERT INTO `state_i18n` VALUES("310","de_DE",""); -INSERT INTO `state_i18n` VALUES("310","en_US","Yamagata"); -INSERT INTO `state_i18n` VALUES("310","es_ES",""); -INSERT INTO `state_i18n` VALUES("310","fr_FR","Yamagata"); -INSERT INTO `state_i18n` VALUES("311","de_DE",""); -INSERT INTO `state_i18n` VALUES("311","en_US","Yamaguchi"); -INSERT INTO `state_i18n` VALUES("311","es_ES",""); -INSERT INTO `state_i18n` VALUES("311","fr_FR","Yamaguchi"); -INSERT INTO `state_i18n` VALUES("312","de_DE",""); -INSERT INTO `state_i18n` VALUES("312","en_US","Yamanashi"); -INSERT INTO `state_i18n` VALUES("312","es_ES",""); -INSERT INTO `state_i18n` VALUES("312","fr_FR","Yamanashi"); - - - -DROP TABLE `tax`; - -CREATE TABLE `tax` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `type` varchar(255) NOT NULL, - `serialized_requirements` text NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `tax` VALUES("1","Thelia\\TaxEngine\\TaxType\\PricePercentTaxType","eyJwZXJjZW50IjoiMjAifQ==","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `tax_i18n`; - -CREATE TABLE `tax_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `tax_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `tax` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `tax_i18n` VALUES("1","de_DE","20% Französische MwSt.",""); -INSERT INTO `tax_i18n` VALUES("1","en_US","French 20% VAT",""); -INSERT INTO `tax_i18n` VALUES("1","es_ES","Francés 20% de IVA",""); -INSERT INTO `tax_i18n` VALUES("1","fr_FR","TVA française à 20%",""); - - - -DROP TABLE `tax_rule`; - -CREATE TABLE `tax_rule` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `is_default` tinyint(1) NOT NULL DEFAULT '0', - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `tax_rule` VALUES("1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `tax_rule_country`; - -CREATE TABLE `tax_rule_country` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `tax_rule_id` int(11) NOT NULL, - `country_id` int(11) NOT NULL, - `state_id` int(11) DEFAULT NULL, - `tax_id` int(11) NOT NULL, - `position` int(11) NOT NULL, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`), - KEY `idx_tax_rule_country_tax_id` (`tax_id`), - KEY `idx_tax_rule_country_tax_rule_id` (`tax_rule_id`), - KEY `idx_tax_rule_country_country_id` (`country_id`), - KEY `idx_tax_rule_country_tax_rule_id_country_id_position` (`tax_rule_id`,`country_id`,`position`), - KEY `idx_tax_rule_country_state_id` (`state_id`), - CONSTRAINT `fk_tax_rule_country_country_id` FOREIGN KEY (`country_id`) REFERENCES `country` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_tax_rule_country_state_id` FOREIGN KEY (`state_id`) REFERENCES `state` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_tax_rule_country_tax_id` FOREIGN KEY (`tax_id`) REFERENCES `tax` (`id`) ON DELETE CASCADE, - CONSTRAINT `fk_tax_rule_country_tax_rule_id` FOREIGN KEY (`tax_rule_id`) REFERENCES `tax_rule` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; - -INSERT INTO `tax_rule_country` VALUES("1","1","64","","1","1","2017-02-28 18:20:10","2017-02-28 18:20:10"); - - - -DROP TABLE `tax_rule_i18n`; - -CREATE TABLE `tax_rule_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `title` varchar(255) DEFAULT NULL, - `description` longtext, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `tax_rule_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `tax_rule` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `tax_rule_i18n` VALUES("1","de_DE","20% Französische MwSt.",""); -INSERT INTO `tax_rule_i18n` VALUES("1","en_US","French 20% VAT",""); -INSERT INTO `tax_rule_i18n` VALUES("1","es_ES","Francés 20% de IVA",""); -INSERT INTO `tax_rule_i18n` VALUES("1","fr_FR","TVA française à 20%",""); - - - -DROP TABLE `template`; - -CREATE TABLE `template` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `created_at` datetime DEFAULT NULL, - `updated_at` datetime DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; - -INSERT INTO `template` VALUES("1","2017-03-01 16:05:24","2017-03-01 16:05:24"); -INSERT INTO `template` VALUES("2","2017-03-01 16:07:04","2017-03-01 16:07:04"); -INSERT INTO `template` VALUES("3","2017-05-23 12:43:05","2017-05-23 12:43:05"); - - - -DROP TABLE `template_i18n`; - -CREATE TABLE `template_i18n` ( - `id` int(11) NOT NULL, - `locale` varchar(5) NOT NULL DEFAULT 'en_US', - `name` varchar(255) DEFAULT NULL, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `template_i18n_FK_1` FOREIGN KEY (`id`) REFERENCES `template` (`id`) ON DELETE CASCADE -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - -INSERT INTO `template_i18n` VALUES("1","fr_FR","Pot"); -INSERT INTO `template_i18n` VALUES("2","fr_FR","Panière"); -INSERT INTO `template_i18n` VALUES("3","fr_FR","Au détail"); - - - -SET foreign_key_checks=1; \ No newline at end of file diff --git a/local/local/config/.gitkeep b/local/local/config/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/config/.htaccess b/local/local/config/.htaccess deleted file mode 100644 index f239fe83..00000000 --- a/local/local/config/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -order deny,allow -deny from all \ No newline at end of file diff --git a/local/local/config/Readme.md b/local/local/config/Readme.md deleted file mode 100644 index d3a2dca4..00000000 --- a/local/local/config/Readme.md +++ /dev/null @@ -1,38 +0,0 @@ -Readme -====== - -## This is the repository of Thelia configuration. All the pull requests on this repo will be ignored. -### If you want to create a project, please take a look at [thelia/thelia-project](https://github.com/thelia/thelia-project) -### If you want to contribute to Thelia, please take a look at [thelia/thelia](https://github.com/thelia/thelia) - -Thelia ------- -[![Build Status](https://travis-ci.org/thelia/thelia.png?branch=master)](https://travis-ci.org/thelia/thelia) [![License](https://poser.pugx.org/thelia/thelia/license.png)](https://packagist.org/packages/thelia/thelia) [![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/thelia/thelia/badges/quality-score.png?s=61e3e04a69bffd71c29b08e5392080317a546716)](https://scrutinizer-ci.com/g/thelia/thelia/) - -[Thelia](https://thelia.net/) is an open source tool for creating e-business websites and managing online content. This software is published under LGPL. - -This is the new major version of Thelia. - -You can download this version and have a try or take a look at the source code (or anything you wish, respecting LGPL). See http://thelia.net/ web site for more information. - -A repository containing all thelia modules is available at this address : https://github.com/thelia-modules - -Requirements ------------- - -* php 5.5 - * Required extensions : - * PDO_Mysql - * openssl - * intl - * gd - * curl - * calendar - * dom - * fileinfo - * safe_mode off - * memory_limit at least 128M, preferably 256. - * post_max_size 20M - * upload_max_filesize 2M -* apache 2 -* mysql diff --git a/local/local/config/build.properties.sample b/local/local/config/build.properties.sample deleted file mode 100644 index 4f9c7788..00000000 --- a/local/local/config/build.properties.sample +++ /dev/null @@ -1,31 +0,0 @@ -# Database driver -propel.database = mysql - -# Project name -propel.project = thelia - -propel.schema.validate = false - -propel.namespace.autoPackage = true - -# The directory where Propel should output generated object model classes. -propel.php.dir = ${propel.project.dir}/../../core/lib - -# The database PDO connection settings at builtime. -# This setting is required for the sql, reverse, and datasql tasks. -# Note that some drivers (e.g. mysql, oracle) require that you specify the -# username and password separately from the DSN, which is why they are -# available as options. -# Example PDO connection strings: -# mysql:host=localhost;port=3307;dbname=testdb -# sqlite:/opt/databases/mydb.sq3 -# sqlite::memory: -# pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass -# oci:dbname=//localhost:1521/mydb -# SEE http://propelorm.org/reference/buildtime-configuration -propel.database.url = {empty}|string -propel.database.user = {empty}|string -propel.database.password = {empty}|string - - -propel.mysql.tableType = InnoDB \ No newline at end of file diff --git a/local/local/config/composer.json b/local/local/config/composer.json deleted file mode 100644 index dc793a55..00000000 --- a/local/local/config/composer.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "name": "thelia/config", - "type": "thelia-local", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "config" - } -} diff --git a/local/local/config/database.yml b/local/local/config/database.yml deleted file mode 100644 index 03a7d678..00000000 --- a/local/local/config/database.yml +++ /dev/null @@ -1,6 +0,0 @@ -database: - connection: - driver: mysql - user: boutiquejkthelia - password: ZQS4bPb3Zbyn - dsn: mysql:host=HackLaurent.local;dbname=boutiquejkthelia;port=3306 \ No newline at end of file diff --git a/local/local/config/database.yml.sample b/local/local/config/database.yml.sample deleted file mode 100644 index e1afbf00..00000000 --- a/local/local/config/database.yml.sample +++ /dev/null @@ -1,6 +0,0 @@ -database: - connection: - driver: %DRIVER% - user: %USERNAME% - password: %PASSWORD% - dsn: %DSN% \ No newline at end of file diff --git a/local/local/config/schema.xml b/local/local/config/schema.xml deleted file mode 100644 index 2da36500..00000000 --- a/local/local/config/schema.xml +++ /dev/null @@ -1,1938 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - -
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
- - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - -
-
diff --git a/local/local/media/.gitkeep b/local/local/media/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/media/images/carousel/banniere_5x106-2.jpg b/local/local/media/images/carousel/banniere_5x106-2.jpg deleted file mode 100644 index 823a758a..00000000 Binary files a/local/local/media/images/carousel/banniere_5x106-2.jpg and /dev/null differ diff --git a/local/local/media/images/carousel/banniere_chutney_figue-1.jpg b/local/local/media/images/carousel/banniere_chutney_figue-1.jpg deleted file mode 100644 index 818f2c79..00000000 Binary files a/local/local/media/images/carousel/banniere_chutney_figue-1.jpg and /dev/null differ diff --git a/local/local/media/images/module/PayPal-1-logo.png b/local/local/media/images/module/PayPal-1-logo.png deleted file mode 100644 index 1fe1879f..00000000 Binary files a/local/local/media/images/module/PayPal-1-logo.png and /dev/null differ diff --git a/local/local/media/images/product/cremecitron_1-1.jpg b/local/local/media/images/product/cremecitron_1-1.jpg deleted file mode 100644 index 21109e8c..00000000 Binary files a/local/local/media/images/product/cremecitron_1-1.jpg and /dev/null differ diff --git a/local/local/media/images/store/banner.jpg b/local/local/media/images/store/banner.jpg deleted file mode 100644 index c80e1652..00000000 Binary files a/local/local/media/images/store/banner.jpg and /dev/null differ diff --git a/local/local/media/images/store/favicon.png b/local/local/media/images/store/favicon.png deleted file mode 100644 index 5669f3e7..00000000 Binary files a/local/local/media/images/store/favicon.png and /dev/null differ diff --git a/local/local/media/images/store/logo.png b/local/local/media/images/store/logo.png deleted file mode 100644 index 6cb56aea..00000000 Binary files a/local/local/media/images/store/logo.png and /dev/null differ diff --git a/local/local/modules/.gitkeep b/local/local/modules/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/modules/Carousel/CHANGELOG.md b/local/local/modules/Carousel/CHANGELOG.md deleted file mode 100644 index b4525a3b..00000000 --- a/local/local/modules/Carousel/CHANGELOG.md +++ /dev/null @@ -1,6 +0,0 @@ -# 2.3.0-alpha1 - -- Moved the images from the directory 'media' in the module to thelia/local/media/images/carousel. -- The current images will be automatically copied in the new directory during the update of the module -- Removed AdminIncludes directory -- All html,js and css files are now in 'templates' \ No newline at end of file diff --git a/local/local/modules/Carousel/Carousel.php b/local/local/modules/Carousel/Carousel.php deleted file mode 100644 index b0caadf0..00000000 --- a/local/local/modules/Carousel/Carousel.php +++ /dev/null @@ -1,89 +0,0 @@ - - */ -class Carousel extends BaseModule -{ - const DOMAIN_NAME = 'carousel'; - - public function preActivation(ConnectionInterface $con = null) - { - if (! $this->getConfigValue('is_initialized', false)) { - $database = new Database($con); - - $database->insertSql(null, array(__DIR__ . '/Config/thelia.sql')); - - $this->setConfigValue('is_initialized', true); - } - - return true; - } - - public function destroy(ConnectionInterface $con = null, $deleteModuleData = false) - { - $database = new Database($con); - - $database->insertSql(null, array(__DIR__ . '/Config/sql/destroy.sql')); - } - - public function getUploadDir() - { - $uploadDir = ConfigQuery::read('images_library_path'); - - if ($uploadDir === null) { - $uploadDir = THELIA_LOCAL_DIR . 'media' . DS . 'images'; - } else { - $uploadDir = THELIA_ROOT . $uploadDir; - } - - return $uploadDir . DS . Carousel::DOMAIN_NAME; - } - - /** - * @param string $currentVersion - * @param string $newVersion - * @param ConnectionInterface $con - * @author Thomas Arnaud - */ - public function update($currentVersion, $newVersion, ConnectionInterface $con = null) - { - $uploadDir = $this->getUploadDir(); - $fileSystem = new Filesystem(); - - if (!$fileSystem->exists($uploadDir) && $fileSystem->exists(__DIR__ . DS . 'media' . DS . 'carousel')) { - $finder = new Finder(); - $finder->files()->in(__DIR__ . DS . 'media' . DS . 'carousel'); - - $fileSystem->mkdir($uploadDir); - - /** @var SplFileInfo $file */ - foreach ($finder as $file) { - copy($file, $uploadDir . DS . $file->getRelativePathname()); - } - $fileSystem->remove(__DIR__ . DS . 'media'); - } - } -} diff --git a/local/local/modules/Carousel/Config/config.xml b/local/local/modules/Carousel/Config/config.xml deleted file mode 100644 index 54642a77..00000000 --- a/local/local/modules/Carousel/Config/config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - -
- - - - - - - - - - - - - - diff --git a/local/local/modules/Carousel/Config/module.xml b/local/local/modules/Carousel/Config/module.xml deleted file mode 100644 index 6608a359..00000000 --- a/local/local/modules/Carousel/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - Carousel\Carousel - - An image carousel - - - Un carrousel d'images - - - en_US - fr_FR - - 2.3.4 - - Manuel Raynaud, Franck Allimant - manu@raynaud.io, franck@cqfdev.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/Carousel/Config/routing.xml b/local/local/modules/Carousel/Config/routing.xml deleted file mode 100644 index 44e95906..00000000 --- a/local/local/modules/Carousel/Config/routing.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - Carousel\Controller\ConfigurationController::uploadImage - - - - Carousel\Controller\ConfigurationController::updateAction - - - - Carousel\Controller\ConfigurationController::deleteAction - - - diff --git a/local/local/modules/Carousel/Config/schema.xml b/local/local/modules/Carousel/Config/schema.xml deleted file mode 100644 index 20ae4d3a..00000000 --- a/local/local/modules/Carousel/Config/schema.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- - -
diff --git a/local/local/modules/Carousel/Config/sql/destroy.sql b/local/local/modules/Carousel/Config/sql/destroy.sql deleted file mode 100644 index e6116063..00000000 --- a/local/local/modules/Carousel/Config/sql/destroy.sql +++ /dev/null @@ -1,6 +0,0 @@ -SET FOREIGN_KEY_CHECKS = 0; - -DROP TABLE IF EXISTS `carousel`; -DROP TABLE IF EXISTS `carousel_i18n`; - -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/local/local/modules/Carousel/Config/thelia.sql b/local/local/modules/Carousel/Config/thelia.sql deleted file mode 100644 index 71aa0d49..00000000 --- a/local/local/modules/Carousel/Config/thelia.sql +++ /dev/null @@ -1,43 +0,0 @@ -# This is a fix for InnoDB in MySQL >= 4.1.x -# It "suspends judgement" for fkey relationships until are tables are set. -SET FOREIGN_KEY_CHECKS = 0; - --- --------------------------------------------------------------------- --- carousel --- --------------------------------------------------------------------- - -CREATE TABLE IF NOT EXISTS `carousel` -( - `id` INTEGER NOT NULL AUTO_INCREMENT, - `file` VARCHAR(255), - `position` INTEGER, - `url` VARCHAR(255), - `created_at` DATETIME, - `updated_at` DATETIME, - PRIMARY KEY (`id`) -) ENGINE=InnoDB; - --- --------------------------------------------------------------------- --- carousel_i18n --- --------------------------------------------------------------------- - - - -CREATE TABLE IF NOT EXISTS `carousel_i18n` -( - `id` INTEGER NOT NULL, - `locale` VARCHAR(5) DEFAULT 'en_US' NOT NULL, - `alt` VARCHAR(255), - `title` VARCHAR(255), - `description` LONGTEXT, - `chapo` TEXT, - `postscriptum` TEXT, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `carousel_i18n_FK_1` - FOREIGN KEY (`id`) - REFERENCES `carousel` (`id`) - ON DELETE CASCADE -) ENGINE=InnoDB; - -# This restores the fkey checks, after having unset them earlier -SET FOREIGN_KEY_CHECKS = 1; diff --git a/local/local/modules/Carousel/Controller/ConfigurationController.php b/local/local/modules/Carousel/Controller/ConfigurationController.php deleted file mode 100644 index f602762e..00000000 --- a/local/local/modules/Carousel/Controller/ConfigurationController.php +++ /dev/null @@ -1,184 +0,0 @@ - - */ -class ConfigurationController extends BaseAdminController -{ - - public function uploadImage() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::CREATE)) { - return $response; - } - - $request = $this->getRequest(); - $form = $this->createForm('carousel.image'); - $error_message = null; - try { - $this->validateForm($form); - - /** @var \Symfony\Component\HttpFoundation\File\UploadedFile $fileBeingUploaded */ - $fileBeingUploaded = $request->files->get(sprintf('%s[file]', $form->getName()), null, true); - - $fileModel = new Carousel(); - - $fileCreateOrUpdateEvent = new FileCreateOrUpdateEvent(1); - $fileCreateOrUpdateEvent->setModel($fileModel); - $fileCreateOrUpdateEvent->setUploadedFile($fileBeingUploaded); - - $this->dispatch( - TheliaEvents::IMAGE_SAVE, - $fileCreateOrUpdateEvent - ); - - // Compensate issue #1005 - $langs = LangQuery::create()->find(); - - /** @var Lang $lang */ - foreach ($langs as $lang) { - $fileCreateOrUpdateEvent->getModel()->setLocale($lang->getLocale())->setTitle('')->save(); - } - - $response = $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'carousel upload', - $error_message, - $form - ); - - $response = $this->render( - "module-configure", - [ - 'module_code' => 'Carousel' - ] - ); - } - - return $response; - } - - /** - * @param Form $form - * @param string $fieldName - * @param int $id - * @return string - */ - protected function getFormFieldValue($form, $fieldName, $id) - { - $value = $form->get(sprintf('%s%d', $fieldName, $id))->getData(); - - return $value; - } - - public function updateAction() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::UPDATE)) { - return $response; - } - - $form = $this->createForm('carousel.update'); - - $error_message = null; - - try { - $updateForm = $this->validateForm($form); - - $carousels = CarouselQuery::create()->findAllByPosition(); - - $locale = $this->getCurrentEditionLocale(); - - /** @var Carousel $carousel */ - foreach ($carousels as $carousel) { - $id = $carousel->getId(); - - $carousel - ->setPosition($this->getFormFieldValue($updateForm, 'position', $id)) - ->setUrl($this->getFormFieldValue($updateForm, 'url', $id)) - ->setLocale($locale) - ->setTitle($this->getFormFieldValue($updateForm, 'title', $id)) - ->setAlt($this->getFormFieldValue($updateForm, 'alt', $id)) - ->setChapo($this->getFormFieldValue($updateForm, 'chapo', $id)) - ->setDescription($this->getFormFieldValue($updateForm, 'description', $id)) - ->setPostscriptum($this->getFormFieldValue($updateForm, 'postscriptum', $id)) - ->save(); - } - - $response = $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'carousel upload', - $error_message, - $form - ); - - $response = $this->render("module-configure", [ 'module_code' => 'Carousel' ]); - } - - return $response; - - } - - public function deleteAction() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::DELETE)) { - return $response; - } - - $imageId = $this->getRequest()->request->get('image_id'); - - if ($imageId != "") { - $carousel = CarouselQuery::create()->findPk($imageId); - - if (null !== $carousel) { - $carousel->delete(); - } - } - - return $this->redirectToConfigurationPage(); - } - - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Carousel')); - } -} \ No newline at end of file diff --git a/local/local/modules/Carousel/Form/CarouselImageForm.php b/local/local/modules/Carousel/Form/CarouselImageForm.php deleted file mode 100644 index 5ad985e3..00000000 --- a/local/local/modules/Carousel/Form/CarouselImageForm.php +++ /dev/null @@ -1,56 +0,0 @@ - - */ -class CarouselImageForm extends BaseForm -{ - /** - * @inheritdoc - */ - protected function buildForm() - { - $translator = Translator::getInstance(); - $this->formBuilder - ->add( - 'file', - 'file', - [ - 'constraints' => [ - new Image() - ], - 'label' => $translator->trans('Carousel image', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'file' - ] - ] - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return 'carousel_image'; - } -} \ No newline at end of file diff --git a/local/local/modules/Carousel/Form/CarouselUpdateForm.php b/local/local/modules/Carousel/Form/CarouselUpdateForm.php deleted file mode 100644 index 3bf3a14d..00000000 --- a/local/local/modules/Carousel/Form/CarouselUpdateForm.php +++ /dev/null @@ -1,166 +0,0 @@ - - */ -class CarouselUpdateForm extends BaseForm -{ - /** - * @inheritdoc - */ - protected function buildForm() - { - $formBuilder = $this->formBuilder; - - $carousels = CarouselQuery::create()->orderByPosition()->find(); - - /** @var \Carousel\Model\Carousel $carousel */ - foreach ($carousels as $carousel) { - $id = $carousel->getId(); - - $formBuilder->add( - 'position' . $id, - 'text', - [ - 'label' => $this->translator->trans('Image position in carousel', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'position' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Image position in carousel', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'alt' . $id, - 'text', - [ - 'label' => $this->translator->trans('Alternative image text', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'alt' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Displayed when image is not visible', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'url' . $id, - 'url', - [ - 'label' => $this->translator->trans('Image URL', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'url' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Please enter a valid URL', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'title' . $id, - 'text', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Title'), - 'label_attr' => [ - 'for' => 'title_field' . $id - ], - 'attr' => [ - 'placeholder' => $this->translator->trans('A descriptive title') - ] - ] - )->add( - 'chapo' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Summary'), - 'label_attr' => [ - 'for' => 'summary_field' . $id, - 'help' => $this->translator->trans( - 'A short description, used when a summary or an introduction is required' - ) - ], - 'attr' => [ - 'rows' => 3, - 'placeholder' => $this->translator->trans('Short description text') - ] - ] - )->add( - 'description' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Detailed description'), - 'label_attr' => [ - 'for' => 'detailed_description_field' . $id, - 'help' => $this->translator->trans('The detailed description.') - ], - 'attr' => [ - 'rows' => 5 - ] - ] - )->add( - 'postscriptum' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Conclusion'), - 'label_attr' => [ - 'for' => 'conclusion_field' . $id, - 'help' => $this->translator->trans( - 'A short text, used when an additional or supplemental information is required.' - ) - ], - 'attr' => [ - 'placeholder' => $this->translator->trans('Short additional text'), - 'rows' => 3, - ] - ] - ); - } - } - - /** - * @inheritdoc - */ - public function getName() - { - return "carousel_update"; - } -} \ No newline at end of file diff --git a/local/local/modules/Carousel/Hook/BackHook.php b/local/local/modules/Carousel/Hook/BackHook.php deleted file mode 100644 index b033670d..00000000 --- a/local/local/modules/Carousel/Hook/BackHook.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class BackHook extends BaseHook -{ - - /** - * Add a new entry in the admin tools menu - * - * should add to event a fragment with fields : id,class,url,title - * - * @param HookRenderBlockEvent $event - */ - public function onMainTopMenuTools(HookRenderBlockEvent $event) - { - $event->add( - [ - 'id' => 'tools_menu_carousel', - 'class' => '', - 'url' => URL::getInstance()->absoluteUrl('/admin/module/Carousel'), - 'title' => $this->trans('Edit your carousel', [], Carousel::DOMAIN_NAME) - ] - ); - } -} diff --git a/local/local/modules/Carousel/I18n/backOffice/default/de_DE.php b/local/local/modules/Carousel/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 3efa0e2d..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ein Bild zu Karussell hinzufügen', - 'Add this image to the carousel' => 'Dieses Bild zu Karussell hinzufügen', - 'Carousel image' => 'Karussell-Bild', - 'Carousel images' => 'Karussell-Bilder', - 'Delete a carousel image' => 'Ein Karussell-Bild löschen', - 'Do you really want to remove this image from the carousel ?' => 'Wollen Sie dieses Bild wirklich aus dem Karussell entfernen?', - 'Edit your carousel.' => 'Karussell bearbeiten.', - 'Remove this image' => 'Dieses Bild entfernen', - 'Your carousel contains no image. Please add one using the form above.' => 'Das Karussell enthält kein Bild. Bitte fügen Sie mit dem Formular oben eines hinzu.', - 'Position' => 'Position', -]; diff --git a/local/local/modules/Carousel/I18n/backOffice/default/en_US.php b/local/local/modules/Carousel/I18n/backOffice/default/en_US.php deleted file mode 100644 index 4807e54b..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Add an image to the carousel', - 'Add this image to the carousel' => 'Add this image to the carousel', - 'Carousel image' => 'Carousel image', - 'Carousel images' => 'Carousel images', - 'Delete a carousel image' => 'Delete a carousel image', - 'Do you really want to remove this image from the carousel ?' => 'Do you really want to remove this image from the carousel ?', - 'Edit your carousel.' => 'Edit your carousel.', - 'Remove this image' => 'Remove this image', - 'Your carousel contains no image. Please add one using the form above.' => 'Your carousel contains no image. Please add one using the form above.', - 'Position' => 'Position', -); diff --git a/local/local/modules/Carousel/I18n/backOffice/default/fr_FR.php b/local/local/modules/Carousel/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index bb28a5bd..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ajouter une image au carrousel', - 'Add this image to the carousel' => 'Ajouter l\'image au carrousel', - 'Carousel image' => 'Image du carrousel', - 'Carousel images' => 'Images du carrousel', - 'Delete a carousel image' => 'Supprimer une image du carrousel', - 'Do you really want to remove this image from the carousel ?' => 'Voulez-vous vraiment retirer cette image du carrousel ?', - 'Edit your carousel.' => 'Modifier votre carrousel', - 'Remove this image' => 'Supprimer cette image', - 'Your carousel contains no image. Please add one using the form above.' => 'Votre carrousel ne contient aucune image. Ajoutez votre première image avec le formulaire ci-dessus', - 'Position' => 'Position', -]; diff --git a/local/local/modules/Carousel/I18n/backOffice/default/ru_RU.php b/local/local/modules/Carousel/I18n/backOffice/default/ru_RU.php deleted file mode 100644 index fdc531d4..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/ru_RU.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Добавить изображение в карусель', - 'Add this image to the carousel' => 'Добавить это изображение в карусель', - 'Carousel image' => 'Изображение карусели', - 'Carousel images' => 'Изображения карусели', - 'Delete a carousel image' => 'Удалить изображение карусели', - 'Do you really want to remove this image from the carousel ?' => 'Вы действительно хотите удалить это изображение из карусели ?', - 'Edit your carousel.' => 'Редактировать вашу карусель.', - 'Remove this image' => 'Удалить это изображение', - 'Your carousel contains no image. Please add one using the form above.' => 'Ваша карусель не содержит изображений. Пожалуйста, добавьте одно используя форму ниже.', - 'Position' => 'Позиция', -); diff --git a/local/local/modules/Carousel/I18n/backOffice/default/tr_TR.php b/local/local/modules/Carousel/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index c9f9f587..00000000 --- a/local/local/modules/Carousel/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Slayt için bir resim ekle', - 'Add this image to the carousel' => 'slayt için bu resim ekleme', - 'Carousel image' => 'slayt görüntü', - 'Carousel images' => 'slayt görüntüleri', - 'Delete a carousel image' => 'Bir slayt resmi silme', - 'Do you really want to remove this image from the carousel ?' => 'Bu görüntüyü slayttan kaldırmak istiyor musunuz?', - 'Edit your carousel.' => 'slayt düzenleyin.', - 'Remove this image' => 'Bu resmi kaldırma', - 'Your carousel contains no image. Please add one using the form above.' => 'Senin slayt hiçbir görüntü içermiyor . Lütfen yukarıdaki formu kullanarak ekleyin.', - 'Position' => 'Pozisyon', -]; diff --git a/local/local/modules/Carousel/I18n/de_DE.php b/local/local/modules/Carousel/I18n/de_DE.php deleted file mode 100644 index 35b35e10..00000000 --- a/local/local/modules/Carousel/I18n/de_DE.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Beschreibungstitel', - 'A short description, used when a summary or an introduction is required' => 'Eine kurze beschreibung, benutzt wenn eine Zusammenfassung order eine Einleitung ist nötig', - 'A short text, used when an additional or supplemental information is required.' => 'Ein kurzer Text, der verwendet wird, wenn eine zusätzliche oder ergänzende Information erforderlich ist.', - 'Alternative image text' => 'Alternativer Bildtext', - 'Carousel image' => 'Karussell-Bild', - 'Conclusion' => 'Abschluss', - 'Detailed description' => 'Detaillierte Beschreibung', - 'Displayed when image is not visible' => 'Angezeigt, wenn das Bild nicht sichtbar ist', - 'Image URL' => 'Bild-URL', - 'Image position in carousel' => 'Position des Bildes im Karussell', - 'Please enter a valid URL' => 'Bitte geben Sie eine gültige URL ein', - 'Short additional text' => 'Kurzer zusätzlicher Text', - 'Short description text' => 'Kurzes Beschreibungstext', - 'Summary' => 'Zusammenfassung', - 'The detailed description.' => 'Die detaillierte Beschreibung.', - 'Title' => 'Titel', -]; diff --git a/local/local/modules/Carousel/I18n/en_US.php b/local/local/modules/Carousel/I18n/en_US.php deleted file mode 100644 index dcc5d1c4..00000000 --- a/local/local/modules/Carousel/I18n/en_US.php +++ /dev/null @@ -1,20 +0,0 @@ - 'A descriptive title', - 'A short description, used when a summary or an introduction is required' => 'A short description, used when a summary or an introduction is required', - 'A short text, used when an additional or supplemental information is required.' => 'A short text, used when an additional or supplemental information is required.', - 'Alternative image text' => 'Alternative image text', - 'Carousel image' => 'Carousel image', - 'Conclusion' => 'Conclusion', - 'Detailed description' => 'Detailed description', - 'Displayed when image is not visible' => 'Displayed when image is not visible', - 'Image URL' => 'Image URL', - 'Image position in carousel' => 'Image position in carousel', - 'Please enter a valid URL' => 'Please enter a valid URL', - 'Short additional text' => 'Short additional text', - 'Short description text' => 'Short description text', - 'Summary' => 'Summary', - 'The detailed description.' => 'The detailed description.', - 'Title' => 'Title', -); diff --git a/local/local/modules/Carousel/I18n/fr_FR.php b/local/local/modules/Carousel/I18n/fr_FR.php deleted file mode 100644 index f5318231..00000000 --- a/local/local/modules/Carousel/I18n/fr_FR.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Un titre descriptif', - 'A short description, used when a summary or an introduction is required' => 'Une courte description, utilisée lorsqu\'un résumé ou une introduction est requise', - 'A short text, used when an additional or supplemental information is required.' => 'Un texte court, utilisé quand une conclusion ou une information complémentaire est nécessaire.', - 'Alternative image text' => 'Texte alternatif de l\'image', - 'Carousel image' => 'Image du carrousel', - 'Conclusion' => 'Conclusion', - 'Detailed description' => 'Description détaillée', - 'Displayed when image is not visible' => 'Affiché lorsque l\'image n\'est pas visible', - 'Image URL' => 'URL de l\'image', - 'Image position in carousel' => 'Position de l\'image dans le carrousel', - 'Please enter a valid URL' => 'Merci d\'ndiquer une URL valide', - 'Short additional text' => 'Un court texte supplémentaire', - 'Short description text' => 'Un court texte de description', - 'Summary' => 'Résumé', - 'The detailed description.' => 'La description détaillée.', - 'Title' => 'Titre', -]; diff --git a/local/local/modules/Carousel/I18n/it_IT.php b/local/local/modules/Carousel/I18n/it_IT.php deleted file mode 100644 index 3919d98b..00000000 --- a/local/local/modules/Carousel/I18n/it_IT.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Un titolo descrittivo', - 'A short description, used when a summary or an introduction is required' => 'Una breve descrizione, utilizzata quando è necessario un sommario o un\'introduzione', - 'Conclusion' => 'Conclusione', - 'Detailed description' => 'Descrizione dettagliata', - 'Summary' => 'Riassunto', - 'The detailed description.' => 'La descrizione dettagliata.', - 'Title' => 'Titolo', -]; diff --git a/local/local/modules/Carousel/I18n/tr_TR.php b/local/local/modules/Carousel/I18n/tr_TR.php deleted file mode 100644 index e8505474..00000000 --- a/local/local/modules/Carousel/I18n/tr_TR.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Açıklayıcı bir başlık', - 'A short description, used when a summary or an introduction is required' => 'Bir Özeti veya giriş gerekli olduğunda kullanılan kısa bir açıklama', - 'A short text, used when an additional or supplemental information is required.' => 'Bir ek ya da tamamlayıcı bilgi gerekli olduğunda kullanılan kısa bir metin.', - 'Alternative image text' => 'Alternatif resim metini', - 'Carousel image' => 'slayt görüntü', - 'Conclusion' => 'Sonuç', - 'Detailed description' => 'Detaylı açıklama', - 'Displayed when image is not visible' => 'resim görünür olmadığında görüntülenen', - 'Image URL' => 'Resim Bağlantı [Link]', - 'Image position in carousel' => 'slayt bulunduğu resim', - 'Please enter a valid URL' => 'Lütfen geçerli bir URL girin', - 'Short additional text' => 'Kısa ek metin', - 'Short description text' => 'Kısa açıklama metni', - 'Summary' => 'Özet', - 'The detailed description.' => 'Ayrıntılı açıklama.', - 'Title' => 'Başlık', -]; diff --git a/local/local/modules/Carousel/Loop/CarouselLoop.php b/local/local/modules/Carousel/Loop/CarouselLoop.php deleted file mode 100644 index 5813a551..00000000 --- a/local/local/modules/Carousel/Loop/CarouselLoop.php +++ /dev/null @@ -1,190 +0,0 @@ - - */ -class CarouselLoop extends Image -{ - - - /** - * @inheritdoc - */ - protected function getArgDefinitions() - { - return new ArgumentCollection( - Argument::createIntTypeArgument('width'), - Argument::createIntTypeArgument('height'), - Argument::createIntTypeArgument('rotation', 0), - Argument::createAnyTypeArgument('background_color'), - Argument::createIntTypeArgument('quality'), - new Argument( - 'resize_mode', - new TypeCollection( - new EnumType(array('crop', 'borders', 'none')) - ), - 'none' - ), - new Argument( - 'order', - new TypeCollection( - new EnumListType(array('alpha', 'alpha-reverse', 'manual', 'manual-reverse', 'random')) - ), - 'manual' - ), - Argument::createAnyTypeArgument('effects'), - Argument::createBooleanTypeArgument('allow_zoom', false) - ); - } - - /** - * @param LoopResult $loopResult - * - * @return LoopResult - */ - public function parseResults(LoopResult $loopResult) - { - /** @var \Carousel\Model\Carousel $carousel */ - foreach ($loopResult->getResultDataCollection() as $carousel) { - $loopResultRow = new LoopResultRow($carousel); - - $event = new ImageEvent(); - $event->setSourceFilepath($carousel->getUploadDir() . DS . $carousel->getFile()) - ->setCacheSubdirectory('carousel'); - - switch ($this->getResizeMode()) { - case 'crop': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; - break; - - case 'borders': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; - break; - - case 'none': - default: - $resize_mode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; - - } - - // Prepare tranformations - $width = $this->getWidth(); - $height = $this->getHeight(); - $rotation = $this->getRotation(); - $background_color = $this->getBackgroundColor(); - $quality = $this->getQuality(); - $effects = $this->getEffects(); - - if (!is_null($width)) { - $event->setWidth($width); - } - if (!is_null($height)) { - $event->setHeight($height); - } - $event->setResizeMode($resize_mode); - if (!is_null($rotation)) { - $event->setRotation($rotation); - } - if (!is_null($background_color)) { - $event->setBackgroundColor($background_color); - } - if (!is_null($quality)) { - $event->setQuality($quality); - } - if (!is_null($effects)) { - $event->setEffects($effects); - } - - $event->setAllowZoom($this->getAllowZoom()); - - // Dispatch image processing event - $this->dispatcher->dispatch(TheliaEvents::IMAGE_PROCESS, $event); - - $loopResultRow - ->set('ID', $carousel->getId()) - ->set("LOCALE", $this->locale) - ->set("IMAGE_URL", $event->getFileUrl()) - ->set("ORIGINAL_IMAGE_URL", $event->getOriginalFileUrl()) - ->set("IMAGE_PATH", $event->getCacheFilepath()) - ->set("ORIGINAL_IMAGE_PATH", $event->getSourceFilepath()) - ->set("TITLE", $carousel->getVirtualColumn('i18n_TITLE')) - ->set("CHAPO", $carousel->getVirtualColumn('i18n_CHAPO')) - ->set("DESCRIPTION", $carousel->getVirtualColumn('i18n_DESCRIPTION')) - ->set("POSTSCRIPTUM", $carousel->getVirtualColumn('i18n_POSTSCRIPTUM')) - ->set("ALT", $carousel->getVirtualColumn('i18n_ALT')) - ->set("URL", $carousel->getUrl()) - ->set('POSITION', $carousel->getPosition()) - ; - - $loopResult->addRow($loopResultRow); - } - - return $loopResult; - } - - /** - * this method returns a Propel ModelCriteria - * - * @return \Propel\Runtime\ActiveQuery\ModelCriteria - */ - public function buildModelCriteria() - { - $search = CarouselQuery::create(); - - $this->configureI18nProcessing($search, [ 'ALT', 'TITLE', 'CHAPO', 'DESCRIPTION', 'POSTSCRIPTUM' ]); - - $orders = $this->getOrder(); - - // Results ordering - foreach ($orders as $order) { - switch ($order) { - case "alpha": - $search->addAscendingOrderByColumn('i18n_TITLE'); - break; - case "alpha-reverse": - $search->addDescendingOrderByColumn('i18n_TITLE'); - break; - case "manual-reverse": - $search->orderByPosition(Criteria::DESC); - break; - case "manual": - $search->orderByPosition(Criteria::ASC); - break; - case "random": - $search->clearOrderByColumns(); - $search->addAscendingOrderByColumn('RAND()'); - break(2); - break; - } - } - - return $search; - } -} diff --git a/local/local/modules/Carousel/Model/Base/Carousel.php b/local/local/modules/Carousel/Model/Base/Carousel.php deleted file mode 100644 index 591337fb..00000000 --- a/local/local/modules/Carousel/Model/Base/Carousel.php +++ /dev/null @@ -1,1932 +0,0 @@ -modifiedColumns; - } - - /** - * Has specified column been modified? - * - * @param string $col column fully qualified name (TableMap::TYPE_COLNAME), e.g. Book::AUTHOR_ID - * @return boolean True if $col has been modified. - */ - public function isColumnModified($col) - { - return $this->modifiedColumns && isset($this->modifiedColumns[$col]); - } - - /** - * Get the columns that have been modified in this object. - * @return array A unique list of the modified column names for this object. - */ - public function getModifiedColumns() - { - return $this->modifiedColumns ? array_keys($this->modifiedColumns) : []; - } - - /** - * Returns whether the object has ever been saved. This will - * be false, if the object was retrieved from storage or was created - * and then saved. - * - * @return boolean true, if the object has never been persisted. - */ - public function isNew() - { - return $this->new; - } - - /** - * Setter for the isNew attribute. This method will be called - * by Propel-generated children and objects. - * - * @param boolean $b the state of the object. - */ - public function setNew($b) - { - $this->new = (Boolean) $b; - } - - /** - * Whether this object has been deleted. - * @return boolean The deleted state of this object. - */ - public function isDeleted() - { - return $this->deleted; - } - - /** - * Specify whether this object has been deleted. - * @param boolean $b The deleted state of this object. - * @return void - */ - public function setDeleted($b) - { - $this->deleted = (Boolean) $b; - } - - /** - * Sets the modified state for the object to be false. - * @param string $col If supplied, only the specified column is reset. - * @return void - */ - public function resetModified($col = null) - { - if (null !== $col) { - if (isset($this->modifiedColumns[$col])) { - unset($this->modifiedColumns[$col]); - } - } else { - $this->modifiedColumns = array(); - } - } - - /** - * Compares this with another Carousel instance. If - * obj is an instance of Carousel, delegates to - * equals(Carousel). Otherwise, returns false. - * - * @param mixed $obj The object to compare to. - * @return boolean Whether equal to the object specified. - */ - public function equals($obj) - { - $thisclazz = get_class($this); - if (!is_object($obj) || !($obj instanceof $thisclazz)) { - return false; - } - - if ($this === $obj) { - return true; - } - - if (null === $this->getPrimaryKey() - || null === $obj->getPrimaryKey()) { - return false; - } - - return $this->getPrimaryKey() === $obj->getPrimaryKey(); - } - - /** - * If the primary key is not null, return the hashcode of the - * primary key. Otherwise, return the hash code of the object. - * - * @return int Hashcode - */ - public function hashCode() - { - if (null !== $this->getPrimaryKey()) { - return crc32(serialize($this->getPrimaryKey())); - } - - return crc32(serialize(clone $this)); - } - - /** - * Get the associative array of the virtual columns in this object - * - * @return array - */ - public function getVirtualColumns() - { - return $this->virtualColumns; - } - - /** - * Checks the existence of a virtual column in this object - * - * @param string $name The virtual column name - * @return boolean - */ - public function hasVirtualColumn($name) - { - return array_key_exists($name, $this->virtualColumns); - } - - /** - * Get the value of a virtual column in this object - * - * @param string $name The virtual column name - * @return mixed - * - * @throws PropelException - */ - public function getVirtualColumn($name) - { - if (!$this->hasVirtualColumn($name)) { - throw new PropelException(sprintf('Cannot get value of inexistent virtual column %s.', $name)); - } - - return $this->virtualColumns[$name]; - } - - /** - * Set the value of a virtual column in this object - * - * @param string $name The virtual column name - * @param mixed $value The value to give to the virtual column - * - * @return Carousel The current object, for fluid interface - */ - public function setVirtualColumn($name, $value) - { - $this->virtualColumns[$name] = $value; - - return $this; - } - - /** - * Logs a message using Propel::log(). - * - * @param string $msg - * @param int $priority One of the Propel::LOG_* logging levels - * @return boolean - */ - protected function log($msg, $priority = Propel::LOG_INFO) - { - return Propel::log(get_class($this) . ': ' . $msg, $priority); - } - - /** - * Populate the current object from a string, using a given parser format - * - * $book = new Book(); - * $book->importFrom('JSON', '{"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, - * or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param string $data The source data to import from - * - * @return Carousel The current object, for fluid interface - */ - public function importFrom($parser, $data) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - $this->fromArray($parser->toArray($data), TableMap::TYPE_PHPNAME); - - return $this; - } - - /** - * Export the current object properties to a string, using a given parser format - * - * $book = BookQuery::create()->findPk(9012); - * echo $book->exportTo('JSON'); - * => {"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy load(ed) columns. Defaults to TRUE. - * @return string The exported data - */ - public function exportTo($parser, $includeLazyLoadColumns = true) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - return $parser->fromArray($this->toArray(TableMap::TYPE_PHPNAME, $includeLazyLoadColumns, array(), true)); - } - - /** - * Clean up internal collections prior to serializing - * Avoids recursive loops that turn into segmentation faults when serializing - */ - public function __sleep() - { - $this->clearAllReferences(); - - return array_keys(get_object_vars($this)); - } - - /** - * Get the [id] column value. - * - * @return int - */ - public function getId() - { - - return $this->id; - } - - /** - * Get the [file] column value. - * - * @return string - */ - public function getFile() - { - - return $this->file; - } - - /** - * Get the [position] column value. - * - * @return int - */ - public function getPosition() - { - - return $this->position; - } - - /** - * Get the [url] column value. - * - * @return string - */ - public function getUrl() - { - - return $this->url; - } - - /** - * Get the [optionally formatted] temporal [created_at] column value. - * - * - * @param string $format The date/time format string (either date()-style or strftime()-style). - * If format is NULL, then the raw \DateTime object will be returned. - * - * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 - * - * @throws PropelException - if unable to parse/validate the date/time value. - */ - public function getCreatedAt($format = NULL) - { - if ($format === null) { - return $this->created_at; - } else { - return $this->created_at instanceof \DateTime ? $this->created_at->format($format) : null; - } - } - - /** - * Get the [optionally formatted] temporal [updated_at] column value. - * - * - * @param string $format The date/time format string (either date()-style or strftime()-style). - * If format is NULL, then the raw \DateTime object will be returned. - * - * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 - * - * @throws PropelException - if unable to parse/validate the date/time value. - */ - public function getUpdatedAt($format = NULL) - { - if ($format === null) { - return $this->updated_at; - } else { - return $this->updated_at instanceof \DateTime ? $this->updated_at->format($format) : null; - } - } - - /** - * Set the value of [id] column. - * - * @param int $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setId($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->id !== $v) { - $this->id = $v; - $this->modifiedColumns[CarouselTableMap::ID] = true; - } - - - return $this; - } // setId() - - /** - * Set the value of [file] column. - * - * @param string $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setFile($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->file !== $v) { - $this->file = $v; - $this->modifiedColumns[CarouselTableMap::FILE] = true; - } - - - return $this; - } // setFile() - - /** - * Set the value of [position] column. - * - * @param int $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setPosition($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->position !== $v) { - $this->position = $v; - $this->modifiedColumns[CarouselTableMap::POSITION] = true; - } - - - return $this; - } // setPosition() - - /** - * Set the value of [url] column. - * - * @param string $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setUrl($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->url !== $v) { - $this->url = $v; - $this->modifiedColumns[CarouselTableMap::URL] = true; - } - - - return $this; - } // setUrl() - - /** - * Sets the value of [created_at] column to a normalized version of the date/time value specified. - * - * @param mixed $v string, integer (timestamp), or \DateTime value. - * Empty strings are treated as NULL. - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setCreatedAt($v) - { - $dt = PropelDateTime::newInstance($v, null, '\DateTime'); - if ($this->created_at !== null || $dt !== null) { - if ($dt !== $this->created_at) { - $this->created_at = $dt; - $this->modifiedColumns[CarouselTableMap::CREATED_AT] = true; - } - } // if either are not null - - - return $this; - } // setCreatedAt() - - /** - * Sets the value of [updated_at] column to a normalized version of the date/time value specified. - * - * @param mixed $v string, integer (timestamp), or \DateTime value. - * Empty strings are treated as NULL. - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setUpdatedAt($v) - { - $dt = PropelDateTime::newInstance($v, null, '\DateTime'); - if ($this->updated_at !== null || $dt !== null) { - if ($dt !== $this->updated_at) { - $this->updated_at = $dt; - $this->modifiedColumns[CarouselTableMap::UPDATED_AT] = true; - } - } // if either are not null - - - return $this; - } // setUpdatedAt() - - /** - * Indicates whether the columns in this object are only set to default values. - * - * This method can be used in conjunction with isModified() to indicate whether an object is both - * modified _and_ has some values set which are non-default. - * - * @return boolean Whether the columns in this object are only been set with default values. - */ - public function hasOnlyDefaultValues() - { - // otherwise, everything was equal, so return TRUE - return true; - } // hasOnlyDefaultValues() - - /** - * Hydrates (populates) the object variables with values from the database resultset. - * - * An offset (0-based "start column") is specified so that objects can be hydrated - * with a subset of the columns in the resultset rows. This is needed, for example, - * for results of JOIN queries where the resultset row includes columns from two or - * more tables. - * - * @param array $row The row returned by DataFetcher->fetch(). - * @param int $startcol 0-based offset column which indicates which restultset column to start with. - * @param boolean $rehydrate Whether this object is being re-hydrated from the database. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @return int next starting column - * @throws PropelException - Any caught Exception will be rewrapped as a PropelException. - */ - public function hydrate($row, $startcol = 0, $rehydrate = false, $indexType = TableMap::TYPE_NUM) - { - try { - - - $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : CarouselTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; - $this->id = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CarouselTableMap::translateFieldName('File', TableMap::TYPE_PHPNAME, $indexType)]; - $this->file = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CarouselTableMap::translateFieldName('Position', TableMap::TYPE_PHPNAME, $indexType)]; - $this->position = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CarouselTableMap::translateFieldName('Url', TableMap::TYPE_PHPNAME, $indexType)]; - $this->url = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CarouselTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)]; - if ($col === '0000-00-00 00:00:00') { - $col = null; - } - $this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CarouselTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)]; - if ($col === '0000-00-00 00:00:00') { - $col = null; - } - $this->updated_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - $this->resetModified(); - - $this->setNew(false); - - if ($rehydrate) { - $this->ensureConsistency(); - } - - return $startcol + 6; // 6 = CarouselTableMap::NUM_HYDRATE_COLUMNS. - - } catch (Exception $e) { - throw new PropelException("Error populating \Carousel\Model\Carousel object", 0, $e); - } - } - - /** - * Checks and repairs the internal consistency of the object. - * - * This method is executed after an already-instantiated object is re-hydrated - * from the database. It exists to check any foreign keys to make sure that - * the objects related to the current object are correct based on foreign key. - * - * You can override this method in the stub class, but you should always invoke - * the base method from the overridden method (i.e. parent::ensureConsistency()), - * in case your model changes. - * - * @throws PropelException - */ - public function ensureConsistency() - { - } // ensureConsistency - - /** - * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. - * - * This will only work if the object has been saved and has a valid primary key set. - * - * @param boolean $deep (optional) Whether to also de-associated any related objects. - * @param ConnectionInterface $con (optional) The ConnectionInterface connection to use. - * @return void - * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db - */ - public function reload($deep = false, ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("Cannot reload a deleted object."); - } - - if ($this->isNew()) { - throw new PropelException("Cannot reload an unsaved object."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselTableMap::DATABASE_NAME); - } - - // We don't need to alter the object instance pool; we're just modifying this instance - // already in the pool. - - $dataFetcher = ChildCarouselQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); - $row = $dataFetcher->fetch(); - $dataFetcher->close(); - if (!$row) { - throw new PropelException('Cannot find matching row in the database to reload object values.'); - } - $this->hydrate($row, 0, true, $dataFetcher->getIndexType()); // rehydrate - - if ($deep) { // also de-associate any related objects? - - $this->collCarouselI18ns = null; - - } // if (deep) - } - - /** - * Removes this object from datastore and sets delete attribute. - * - * @param ConnectionInterface $con - * @return void - * @throws PropelException - * @see Carousel::setDeleted() - * @see Carousel::isDeleted() - */ - public function delete(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("This object has already been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - try { - $deleteQuery = ChildCarouselQuery::create() - ->filterByPrimaryKey($this->getPrimaryKey()); - $ret = $this->preDelete($con); - if ($ret) { - $deleteQuery->delete($con); - $this->postDelete($con); - $con->commit(); - $this->setDeleted(true); - } else { - $con->commit(); - } - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Persists this object to the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All modified related objects will also be persisted in the doSave() - * method. This method wraps all precipitate database operations in a - * single transaction. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see doSave() - */ - public function save(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("You cannot save an object that has been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - $isInsert = $this->isNew(); - try { - $ret = $this->preSave($con); - if ($isInsert) { - $ret = $ret && $this->preInsert($con); - // timestampable behavior - if (!$this->isColumnModified(CarouselTableMap::CREATED_AT)) { - $this->setCreatedAt(time()); - } - if (!$this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $this->setUpdatedAt(time()); - } - } else { - $ret = $ret && $this->preUpdate($con); - // timestampable behavior - if ($this->isModified() && !$this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $this->setUpdatedAt(time()); - } - } - if ($ret) { - $affectedRows = $this->doSave($con); - if ($isInsert) { - $this->postInsert($con); - } else { - $this->postUpdate($con); - } - $this->postSave($con); - CarouselTableMap::addInstanceToPool($this); - } else { - $affectedRows = 0; - } - $con->commit(); - - return $affectedRows; - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Performs the work of inserting or updating the row in the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All related objects are also updated in this method. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see save() - */ - protected function doSave(ConnectionInterface $con) - { - $affectedRows = 0; // initialize var to track total num of affected rows - if (!$this->alreadyInSave) { - $this->alreadyInSave = true; - - if ($this->isNew() || $this->isModified()) { - // persist changes - if ($this->isNew()) { - $this->doInsert($con); - } else { - $this->doUpdate($con); - } - $affectedRows += 1; - $this->resetModified(); - } - - if ($this->carouselI18nsScheduledForDeletion !== null) { - if (!$this->carouselI18nsScheduledForDeletion->isEmpty()) { - \Carousel\Model\CarouselI18nQuery::create() - ->filterByPrimaryKeys($this->carouselI18nsScheduledForDeletion->getPrimaryKeys(false)) - ->delete($con); - $this->carouselI18nsScheduledForDeletion = null; - } - } - - if ($this->collCarouselI18ns !== null) { - foreach ($this->collCarouselI18ns as $referrerFK) { - if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { - $affectedRows += $referrerFK->save($con); - } - } - } - - $this->alreadyInSave = false; - - } - - return $affectedRows; - } // doSave() - - /** - * Insert the row in the database. - * - * @param ConnectionInterface $con - * - * @throws PropelException - * @see doSave() - */ - protected function doInsert(ConnectionInterface $con) - { - $modifiedColumns = array(); - $index = 0; - - $this->modifiedColumns[CarouselTableMap::ID] = true; - if (null !== $this->id) { - throw new PropelException('Cannot insert a value for auto-increment primary key (' . CarouselTableMap::ID . ')'); - } - - // check the columns in natural order for more readable SQL queries - if ($this->isColumnModified(CarouselTableMap::ID)) { - $modifiedColumns[':p' . $index++] = 'ID'; - } - if ($this->isColumnModified(CarouselTableMap::FILE)) { - $modifiedColumns[':p' . $index++] = 'FILE'; - } - if ($this->isColumnModified(CarouselTableMap::POSITION)) { - $modifiedColumns[':p' . $index++] = 'POSITION'; - } - if ($this->isColumnModified(CarouselTableMap::URL)) { - $modifiedColumns[':p' . $index++] = 'URL'; - } - if ($this->isColumnModified(CarouselTableMap::CREATED_AT)) { - $modifiedColumns[':p' . $index++] = 'CREATED_AT'; - } - if ($this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $modifiedColumns[':p' . $index++] = 'UPDATED_AT'; - } - - $sql = sprintf( - 'INSERT INTO carousel (%s) VALUES (%s)', - implode(', ', $modifiedColumns), - implode(', ', array_keys($modifiedColumns)) - ); - - try { - $stmt = $con->prepare($sql); - foreach ($modifiedColumns as $identifier => $columnName) { - switch ($columnName) { - case 'ID': - $stmt->bindValue($identifier, $this->id, PDO::PARAM_INT); - break; - case 'FILE': - $stmt->bindValue($identifier, $this->file, PDO::PARAM_STR); - break; - case 'POSITION': - $stmt->bindValue($identifier, $this->position, PDO::PARAM_INT); - break; - case 'URL': - $stmt->bindValue($identifier, $this->url, PDO::PARAM_STR); - break; - case 'CREATED_AT': - $stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); - break; - case 'UPDATED_AT': - $stmt->bindValue($identifier, $this->updated_at ? $this->updated_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); - break; - } - } - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), 0, $e); - } - - try { - $pk = $con->lastInsertId(); - } catch (Exception $e) { - throw new PropelException('Unable to get autoincrement id.', 0, $e); - } - $this->setId($pk); - - $this->setNew(false); - } - - /** - * Update the row in the database. - * - * @param ConnectionInterface $con - * - * @return Integer Number of updated rows - * @see doSave() - */ - protected function doUpdate(ConnectionInterface $con) - { - $selectCriteria = $this->buildPkeyCriteria(); - $valuesCriteria = $this->buildCriteria(); - - return $selectCriteria->doUpdate($valuesCriteria, $con); - } - - /** - * Retrieves a field from the object by name passed in as a string. - * - * @param string $name name - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return mixed Value of field. - */ - public function getByName($name, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - $field = $this->getByPosition($pos); - - return $field; - } - - /** - * Retrieves a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @return mixed Value of field at $pos - */ - public function getByPosition($pos) - { - switch ($pos) { - case 0: - return $this->getId(); - break; - case 1: - return $this->getFile(); - break; - case 2: - return $this->getPosition(); - break; - case 3: - return $this->getUrl(); - break; - case 4: - return $this->getCreatedAt(); - break; - case 5: - return $this->getUpdatedAt(); - break; - default: - return null; - break; - } // switch() - } - - /** - * Exports the object as an array. - * - * You can specify the key type of the array by passing one of the class - * type constants. - * - * @param string $keyType (optional) One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to TRUE. - * @param array $alreadyDumpedObjects List of objects to skip to avoid recursion - * @param boolean $includeForeignObjects (optional) Whether to include hydrated related objects. Default to FALSE. - * - * @return array an associative array containing the field names (as keys) and field values - */ - public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false) - { - if (isset($alreadyDumpedObjects['Carousel'][$this->getPrimaryKey()])) { - return '*RECURSION*'; - } - $alreadyDumpedObjects['Carousel'][$this->getPrimaryKey()] = true; - $keys = CarouselTableMap::getFieldNames($keyType); - $result = array( - $keys[0] => $this->getId(), - $keys[1] => $this->getFile(), - $keys[2] => $this->getPosition(), - $keys[3] => $this->getUrl(), - $keys[4] => $this->getCreatedAt(), - $keys[5] => $this->getUpdatedAt(), - ); - $virtualColumns = $this->virtualColumns; - foreach ($virtualColumns as $key => $virtualColumn) { - $result[$key] = $virtualColumn; - } - - if ($includeForeignObjects) { - if (null !== $this->collCarouselI18ns) { - $result['CarouselI18ns'] = $this->collCarouselI18ns->toArray(null, true, $keyType, $includeLazyLoadColumns, $alreadyDumpedObjects); - } - } - - return $result; - } - - /** - * Sets a field from the object by name passed in as a string. - * - * @param string $name - * @param mixed $value field value - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return void - */ - public function setByName($name, $value, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - - return $this->setByPosition($pos, $value); - } - - /** - * Sets a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @param mixed $value field value - * @return void - */ - public function setByPosition($pos, $value) - { - switch ($pos) { - case 0: - $this->setId($value); - break; - case 1: - $this->setFile($value); - break; - case 2: - $this->setPosition($value); - break; - case 3: - $this->setUrl($value); - break; - case 4: - $this->setCreatedAt($value); - break; - case 5: - $this->setUpdatedAt($value); - break; - } // switch() - } - - /** - * Populates the object using an array. - * - * This is particularly useful when populating an object from one of the - * request arrays (e.g. $_POST). This method goes through the column - * names, checking to see whether a matching key exists in populated - * array. If so the setByName() method is called for that column. - * - * You can specify the key type of the array by additionally passing one - * of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * The default key type is the column's TableMap::TYPE_PHPNAME. - * - * @param array $arr An array to populate the object from. - * @param string $keyType The type of keys the array uses. - * @return void - */ - public function fromArray($arr, $keyType = TableMap::TYPE_PHPNAME) - { - $keys = CarouselTableMap::getFieldNames($keyType); - - if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]); - if (array_key_exists($keys[1], $arr)) $this->setFile($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setPosition($arr[$keys[2]]); - if (array_key_exists($keys[3], $arr)) $this->setUrl($arr[$keys[3]]); - if (array_key_exists($keys[4], $arr)) $this->setCreatedAt($arr[$keys[4]]); - if (array_key_exists($keys[5], $arr)) $this->setUpdatedAt($arr[$keys[5]]); - } - - /** - * Build a Criteria object containing the values of all modified columns in this object. - * - * @return Criteria The Criteria object containing all modified values. - */ - public function buildCriteria() - { - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - - if ($this->isColumnModified(CarouselTableMap::ID)) $criteria->add(CarouselTableMap::ID, $this->id); - if ($this->isColumnModified(CarouselTableMap::FILE)) $criteria->add(CarouselTableMap::FILE, $this->file); - if ($this->isColumnModified(CarouselTableMap::POSITION)) $criteria->add(CarouselTableMap::POSITION, $this->position); - if ($this->isColumnModified(CarouselTableMap::URL)) $criteria->add(CarouselTableMap::URL, $this->url); - if ($this->isColumnModified(CarouselTableMap::CREATED_AT)) $criteria->add(CarouselTableMap::CREATED_AT, $this->created_at); - if ($this->isColumnModified(CarouselTableMap::UPDATED_AT)) $criteria->add(CarouselTableMap::UPDATED_AT, $this->updated_at); - - return $criteria; - } - - /** - * Builds a Criteria object containing the primary key for this object. - * - * Unlike buildCriteria() this method includes the primary key values regardless - * of whether or not they have been modified. - * - * @return Criteria The Criteria object containing value(s) for primary key(s). - */ - public function buildPkeyCriteria() - { - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - $criteria->add(CarouselTableMap::ID, $this->id); - - return $criteria; - } - - /** - * Returns the primary key for this object (row). - * @return int - */ - public function getPrimaryKey() - { - return $this->getId(); - } - - /** - * Generic method to set the primary key (id column). - * - * @param int $key Primary key. - * @return void - */ - public function setPrimaryKey($key) - { - $this->setId($key); - } - - /** - * Returns true if the primary key for this object is null. - * @return boolean - */ - public function isPrimaryKeyNull() - { - - return null === $this->getId(); - } - - /** - * Sets contents of passed object to values from current object. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param object $copyObj An object of \Carousel\Model\Carousel (or compatible) type. - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new. - * @throws PropelException - */ - public function copyInto($copyObj, $deepCopy = false, $makeNew = true) - { - $copyObj->setFile($this->getFile()); - $copyObj->setPosition($this->getPosition()); - $copyObj->setUrl($this->getUrl()); - $copyObj->setCreatedAt($this->getCreatedAt()); - $copyObj->setUpdatedAt($this->getUpdatedAt()); - - if ($deepCopy) { - // important: temporarily setNew(false) because this affects the behavior of - // the getter/setter methods for fkey referrer objects. - $copyObj->setNew(false); - - foreach ($this->getCarouselI18ns() as $relObj) { - if ($relObj !== $this) { // ensure that we don't try to copy a reference to ourselves - $copyObj->addCarouselI18n($relObj->copy($deepCopy)); - } - } - - } // if ($deepCopy) - - if ($makeNew) { - $copyObj->setNew(true); - $copyObj->setId(NULL); // this is a auto-increment column, so set to default value - } - } - - /** - * Makes a copy of this object that will be inserted as a new row in table when saved. - * It creates a new object filling in the simple attributes, but skipping any primary - * keys that are defined for the table. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @return \Carousel\Model\Carousel Clone of current object. - * @throws PropelException - */ - public function copy($deepCopy = false) - { - // we use get_class(), because this might be a subclass - $clazz = get_class($this); - $copyObj = new $clazz(); - $this->copyInto($copyObj, $deepCopy); - - return $copyObj; - } - - - /** - * Initializes a collection based on the name of a relation. - * Avoids crafting an 'init[$relationName]s' method name - * that wouldn't work when StandardEnglishPluralizer is used. - * - * @param string $relationName The name of the relation to initialize - * @return void - */ - public function initRelation($relationName) - { - if ('CarouselI18n' == $relationName) { - return $this->initCarouselI18ns(); - } - } - - /** - * Clears out the collCarouselI18ns collection - * - * This does not modify the database; however, it will remove any associated objects, causing - * them to be refetched by subsequent calls to accessor method. - * - * @return void - * @see addCarouselI18ns() - */ - public function clearCarouselI18ns() - { - $this->collCarouselI18ns = null; // important to set this to NULL since that means it is uninitialized - } - - /** - * Reset is the collCarouselI18ns collection loaded partially. - */ - public function resetPartialCarouselI18ns($v = true) - { - $this->collCarouselI18nsPartial = $v; - } - - /** - * Initializes the collCarouselI18ns collection. - * - * By default this just sets the collCarouselI18ns collection to an empty array (like clearcollCarouselI18ns()); - * however, you may wish to override this method in your stub class to provide setting appropriate - * to your application -- for example, setting the initial array to the values stored in database. - * - * @param boolean $overrideExisting If set to true, the method call initializes - * the collection even if it is not empty - * - * @return void - */ - public function initCarouselI18ns($overrideExisting = true) - { - if (null !== $this->collCarouselI18ns && !$overrideExisting) { - return; - } - $this->collCarouselI18ns = new ObjectCollection(); - $this->collCarouselI18ns->setModel('\Carousel\Model\CarouselI18n'); - } - - /** - * Gets an array of ChildCarouselI18n objects which contain a foreign key that references this object. - * - * If the $criteria is not null, it is used to always fetch the results from the database. - * Otherwise the results are fetched from the database the first time, then cached. - * Next time the same method is called without $criteria, the cached collection is returned. - * If this ChildCarousel is new, it will return - * an empty collection or the current collection; the criteria is ignored on a new object. - * - * @param Criteria $criteria optional Criteria object to narrow the query - * @param ConnectionInterface $con optional connection object - * @return Collection|ChildCarouselI18n[] List of ChildCarouselI18n objects - * @throws PropelException - */ - public function getCarouselI18ns($criteria = null, ConnectionInterface $con = null) - { - $partial = $this->collCarouselI18nsPartial && !$this->isNew(); - if (null === $this->collCarouselI18ns || null !== $criteria || $partial) { - if ($this->isNew() && null === $this->collCarouselI18ns) { - // return empty collection - $this->initCarouselI18ns(); - } else { - $collCarouselI18ns = ChildCarouselI18nQuery::create(null, $criteria) - ->filterByCarousel($this) - ->find($con); - - if (null !== $criteria) { - if (false !== $this->collCarouselI18nsPartial && count($collCarouselI18ns)) { - $this->initCarouselI18ns(false); - - foreach ($collCarouselI18ns as $obj) { - if (false == $this->collCarouselI18ns->contains($obj)) { - $this->collCarouselI18ns->append($obj); - } - } - - $this->collCarouselI18nsPartial = true; - } - - reset($collCarouselI18ns); - - return $collCarouselI18ns; - } - - if ($partial && $this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $obj) { - if ($obj->isNew()) { - $collCarouselI18ns[] = $obj; - } - } - } - - $this->collCarouselI18ns = $collCarouselI18ns; - $this->collCarouselI18nsPartial = false; - } - } - - return $this->collCarouselI18ns; - } - - /** - * Sets a collection of CarouselI18n objects related by a one-to-many relationship - * to the current object. - * It will also schedule objects for deletion based on a diff between old objects (aka persisted) - * and new objects from the given Propel collection. - * - * @param Collection $carouselI18ns A Propel collection. - * @param ConnectionInterface $con Optional connection object - * @return ChildCarousel The current object (for fluent API support) - */ - public function setCarouselI18ns(Collection $carouselI18ns, ConnectionInterface $con = null) - { - $carouselI18nsToDelete = $this->getCarouselI18ns(new Criteria(), $con)->diff($carouselI18ns); - - - //since at least one column in the foreign key is at the same time a PK - //we can not just set a PK to NULL in the lines below. We have to store - //a backup of all values, so we are able to manipulate these items based on the onDelete value later. - $this->carouselI18nsScheduledForDeletion = clone $carouselI18nsToDelete; - - foreach ($carouselI18nsToDelete as $carouselI18nRemoved) { - $carouselI18nRemoved->setCarousel(null); - } - - $this->collCarouselI18ns = null; - foreach ($carouselI18ns as $carouselI18n) { - $this->addCarouselI18n($carouselI18n); - } - - $this->collCarouselI18ns = $carouselI18ns; - $this->collCarouselI18nsPartial = false; - - return $this; - } - - /** - * Returns the number of related CarouselI18n objects. - * - * @param Criteria $criteria - * @param boolean $distinct - * @param ConnectionInterface $con - * @return int Count of related CarouselI18n objects. - * @throws PropelException - */ - public function countCarouselI18ns(Criteria $criteria = null, $distinct = false, ConnectionInterface $con = null) - { - $partial = $this->collCarouselI18nsPartial && !$this->isNew(); - if (null === $this->collCarouselI18ns || null !== $criteria || $partial) { - if ($this->isNew() && null === $this->collCarouselI18ns) { - return 0; - } - - if ($partial && !$criteria) { - return count($this->getCarouselI18ns()); - } - - $query = ChildCarouselI18nQuery::create(null, $criteria); - if ($distinct) { - $query->distinct(); - } - - return $query - ->filterByCarousel($this) - ->count($con); - } - - return count($this->collCarouselI18ns); - } - - /** - * Method called to associate a ChildCarouselI18n object to this object - * through the ChildCarouselI18n foreign key attribute. - * - * @param ChildCarouselI18n $l ChildCarouselI18n - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function addCarouselI18n(ChildCarouselI18n $l) - { - if ($l && $locale = $l->getLocale()) { - $this->setLocale($locale); - $this->currentTranslations[$locale] = $l; - } - if ($this->collCarouselI18ns === null) { - $this->initCarouselI18ns(); - $this->collCarouselI18nsPartial = true; - } - - if (!in_array($l, $this->collCarouselI18ns->getArrayCopy(), true)) { // only add it if the **same** object is not already associated - $this->doAddCarouselI18n($l); - } - - return $this; - } - - /** - * @param CarouselI18n $carouselI18n The carouselI18n object to add. - */ - protected function doAddCarouselI18n($carouselI18n) - { - $this->collCarouselI18ns[]= $carouselI18n; - $carouselI18n->setCarousel($this); - } - - /** - * @param CarouselI18n $carouselI18n The carouselI18n object to remove. - * @return ChildCarousel The current object (for fluent API support) - */ - public function removeCarouselI18n($carouselI18n) - { - if ($this->getCarouselI18ns()->contains($carouselI18n)) { - $this->collCarouselI18ns->remove($this->collCarouselI18ns->search($carouselI18n)); - if (null === $this->carouselI18nsScheduledForDeletion) { - $this->carouselI18nsScheduledForDeletion = clone $this->collCarouselI18ns; - $this->carouselI18nsScheduledForDeletion->clear(); - } - $this->carouselI18nsScheduledForDeletion[]= clone $carouselI18n; - $carouselI18n->setCarousel(null); - } - - return $this; - } - - /** - * Clears the current object and sets all attributes to their default values - */ - public function clear() - { - $this->id = null; - $this->file = null; - $this->position = null; - $this->url = null; - $this->created_at = null; - $this->updated_at = null; - $this->alreadyInSave = false; - $this->clearAllReferences(); - $this->resetModified(); - $this->setNew(true); - $this->setDeleted(false); - } - - /** - * Resets all references to other model objects or collections of model objects. - * - * This method is a user-space workaround for PHP's inability to garbage collect - * objects with circular references (even in PHP 5.3). This is currently necessary - * when using Propel in certain daemon or large-volume/high-memory operations. - * - * @param boolean $deep Whether to also clear the references on all referrer objects. - */ - public function clearAllReferences($deep = false) - { - if ($deep) { - if ($this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $o) { - $o->clearAllReferences($deep); - } - } - } // if ($deep) - - // i18n behavior - $this->currentLocale = 'en_US'; - $this->currentTranslations = null; - - $this->collCarouselI18ns = null; - } - - /** - * Return the string representation of this object - * - * @return string - */ - public function __toString() - { - return (string) $this->exportTo(CarouselTableMap::DEFAULT_STRING_FORMAT); - } - - // timestampable behavior - - /** - * Mark the current object so that the update date doesn't get updated during next save - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function keepUpdateDateUnchanged() - { - $this->modifiedColumns[CarouselTableMap::UPDATED_AT] = true; - - return $this; - } - - // i18n behavior - - /** - * Sets the locale for translations - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function setLocale($locale = 'en_US') - { - $this->currentLocale = $locale; - - return $this; - } - - /** - * Gets the locale for translations - * - * @return string $locale Locale to use for the translation, e.g. 'fr_FR' - */ - public function getLocale() - { - return $this->currentLocale; - } - - /** - * Returns the current translation for a given locale - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n */ - public function getTranslation($locale = 'en_US', ConnectionInterface $con = null) - { - if (!isset($this->currentTranslations[$locale])) { - if (null !== $this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $translation) { - if ($translation->getLocale() == $locale) { - $this->currentTranslations[$locale] = $translation; - - return $translation; - } - } - } - if ($this->isNew()) { - $translation = new ChildCarouselI18n(); - $translation->setLocale($locale); - } else { - $translation = ChildCarouselI18nQuery::create() - ->filterByPrimaryKey(array($this->getPrimaryKey(), $locale)) - ->findOneOrCreate($con); - $this->currentTranslations[$locale] = $translation; - } - $this->addCarouselI18n($translation); - } - - return $this->currentTranslations[$locale]; - } - - /** - * Remove the translation for a given locale - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function removeTranslation($locale = 'en_US', ConnectionInterface $con = null) - { - if (!$this->isNew()) { - ChildCarouselI18nQuery::create() - ->filterByPrimaryKey(array($this->getPrimaryKey(), $locale)) - ->delete($con); - } - if (isset($this->currentTranslations[$locale])) { - unset($this->currentTranslations[$locale]); - } - foreach ($this->collCarouselI18ns as $key => $translation) { - if ($translation->getLocale() == $locale) { - unset($this->collCarouselI18ns[$key]); - break; - } - } - - return $this; - } - - /** - * Returns the current translation - * - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n */ - public function getCurrentTranslation(ConnectionInterface $con = null) - { - return $this->getTranslation($this->getLocale(), $con); - } - - - /** - * Get the [alt] column value. - * - * @return string - */ - public function getAlt() - { - return $this->getCurrentTranslation()->getAlt(); - } - - - /** - * Set the value of [alt] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setAlt($v) - { $this->getCurrentTranslation()->setAlt($v); - - return $this; - } - - - /** - * Get the [title] column value. - * - * @return string - */ - public function getTitle() - { - return $this->getCurrentTranslation()->getTitle(); - } - - - /** - * Set the value of [title] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setTitle($v) - { $this->getCurrentTranslation()->setTitle($v); - - return $this; - } - - - /** - * Get the [description] column value. - * - * @return string - */ - public function getDescription() - { - return $this->getCurrentTranslation()->getDescription(); - } - - - /** - * Set the value of [description] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setDescription($v) - { $this->getCurrentTranslation()->setDescription($v); - - return $this; - } - - - /** - * Get the [chapo] column value. - * - * @return string - */ - public function getChapo() - { - return $this->getCurrentTranslation()->getChapo(); - } - - - /** - * Set the value of [chapo] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setChapo($v) - { $this->getCurrentTranslation()->setChapo($v); - - return $this; - } - - - /** - * Get the [postscriptum] column value. - * - * @return string - */ - public function getPostscriptum() - { - return $this->getCurrentTranslation()->getPostscriptum(); - } - - - /** - * Set the value of [postscriptum] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setPostscriptum($v) - { $this->getCurrentTranslation()->setPostscriptum($v); - - return $this; - } - - /** - * Code to be run before persisting the object - * @param ConnectionInterface $con - * @return boolean - */ - public function preSave(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after persisting the object - * @param ConnectionInterface $con - */ - public function postSave(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before inserting to database - * @param ConnectionInterface $con - * @return boolean - */ - public function preInsert(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after inserting to database - * @param ConnectionInterface $con - */ - public function postInsert(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before updating the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preUpdate(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after updating the object in database - * @param ConnectionInterface $con - */ - public function postUpdate(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before deleting the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preDelete(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after deleting the object in database - * @param ConnectionInterface $con - */ - public function postDelete(ConnectionInterface $con = null) - { - - } - - - /** - * Derived method to catches calls to undefined methods. - * - * Provides magic import/export method support (fromXML()/toXML(), fromYAML()/toYAML(), etc.). - * Allows to define default __call() behavior if you overwrite __call() - * - * @param string $name - * @param mixed $params - * - * @return array|string - */ - public function __call($name, $params) - { - if (0 === strpos($name, 'get')) { - $virtualColumn = substr($name, 3); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - - $virtualColumn = lcfirst($virtualColumn); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - } - - if (0 === strpos($name, 'from')) { - $format = substr($name, 4); - - return $this->importFrom($format, reset($params)); - } - - if (0 === strpos($name, 'to')) { - $format = substr($name, 2); - $includeLazyLoadColumns = isset($params[0]) ? $params[0] : true; - - return $this->exportTo($format, $includeLazyLoadColumns); - } - - throw new BadMethodCallException(sprintf('Call to undefined method: %s.', $name)); - } - -} diff --git a/local/local/modules/Carousel/Model/Base/CarouselI18n.php b/local/local/modules/Carousel/Model/Base/CarouselI18n.php deleted file mode 100644 index 0f993bf8..00000000 --- a/local/local/modules/Carousel/Model/Base/CarouselI18n.php +++ /dev/null @@ -1,1500 +0,0 @@ -locale = 'en_US'; - } - - /** - * Initializes internal state of Carousel\Model\Base\CarouselI18n object. - * @see applyDefaults() - */ - public function __construct() - { - $this->applyDefaultValues(); - } - - /** - * Returns whether the object has been modified. - * - * @return boolean True if the object has been modified. - */ - public function isModified() - { - return !!$this->modifiedColumns; - } - - /** - * Has specified column been modified? - * - * @param string $col column fully qualified name (TableMap::TYPE_COLNAME), e.g. Book::AUTHOR_ID - * @return boolean True if $col has been modified. - */ - public function isColumnModified($col) - { - return $this->modifiedColumns && isset($this->modifiedColumns[$col]); - } - - /** - * Get the columns that have been modified in this object. - * @return array A unique list of the modified column names for this object. - */ - public function getModifiedColumns() - { - return $this->modifiedColumns ? array_keys($this->modifiedColumns) : []; - } - - /** - * Returns whether the object has ever been saved. This will - * be false, if the object was retrieved from storage or was created - * and then saved. - * - * @return boolean true, if the object has never been persisted. - */ - public function isNew() - { - return $this->new; - } - - /** - * Setter for the isNew attribute. This method will be called - * by Propel-generated children and objects. - * - * @param boolean $b the state of the object. - */ - public function setNew($b) - { - $this->new = (Boolean) $b; - } - - /** - * Whether this object has been deleted. - * @return boolean The deleted state of this object. - */ - public function isDeleted() - { - return $this->deleted; - } - - /** - * Specify whether this object has been deleted. - * @param boolean $b The deleted state of this object. - * @return void - */ - public function setDeleted($b) - { - $this->deleted = (Boolean) $b; - } - - /** - * Sets the modified state for the object to be false. - * @param string $col If supplied, only the specified column is reset. - * @return void - */ - public function resetModified($col = null) - { - if (null !== $col) { - if (isset($this->modifiedColumns[$col])) { - unset($this->modifiedColumns[$col]); - } - } else { - $this->modifiedColumns = array(); - } - } - - /** - * Compares this with another CarouselI18n instance. If - * obj is an instance of CarouselI18n, delegates to - * equals(CarouselI18n). Otherwise, returns false. - * - * @param mixed $obj The object to compare to. - * @return boolean Whether equal to the object specified. - */ - public function equals($obj) - { - $thisclazz = get_class($this); - if (!is_object($obj) || !($obj instanceof $thisclazz)) { - return false; - } - - if ($this === $obj) { - return true; - } - - if (null === $this->getPrimaryKey() - || null === $obj->getPrimaryKey()) { - return false; - } - - return $this->getPrimaryKey() === $obj->getPrimaryKey(); - } - - /** - * If the primary key is not null, return the hashcode of the - * primary key. Otherwise, return the hash code of the object. - * - * @return int Hashcode - */ - public function hashCode() - { - if (null !== $this->getPrimaryKey()) { - return crc32(serialize($this->getPrimaryKey())); - } - - return crc32(serialize(clone $this)); - } - - /** - * Get the associative array of the virtual columns in this object - * - * @return array - */ - public function getVirtualColumns() - { - return $this->virtualColumns; - } - - /** - * Checks the existence of a virtual column in this object - * - * @param string $name The virtual column name - * @return boolean - */ - public function hasVirtualColumn($name) - { - return array_key_exists($name, $this->virtualColumns); - } - - /** - * Get the value of a virtual column in this object - * - * @param string $name The virtual column name - * @return mixed - * - * @throws PropelException - */ - public function getVirtualColumn($name) - { - if (!$this->hasVirtualColumn($name)) { - throw new PropelException(sprintf('Cannot get value of inexistent virtual column %s.', $name)); - } - - return $this->virtualColumns[$name]; - } - - /** - * Set the value of a virtual column in this object - * - * @param string $name The virtual column name - * @param mixed $value The value to give to the virtual column - * - * @return CarouselI18n The current object, for fluid interface - */ - public function setVirtualColumn($name, $value) - { - $this->virtualColumns[$name] = $value; - - return $this; - } - - /** - * Logs a message using Propel::log(). - * - * @param string $msg - * @param int $priority One of the Propel::LOG_* logging levels - * @return boolean - */ - protected function log($msg, $priority = Propel::LOG_INFO) - { - return Propel::log(get_class($this) . ': ' . $msg, $priority); - } - - /** - * Populate the current object from a string, using a given parser format - * - * $book = new Book(); - * $book->importFrom('JSON', '{"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, - * or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param string $data The source data to import from - * - * @return CarouselI18n The current object, for fluid interface - */ - public function importFrom($parser, $data) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - $this->fromArray($parser->toArray($data), TableMap::TYPE_PHPNAME); - - return $this; - } - - /** - * Export the current object properties to a string, using a given parser format - * - * $book = BookQuery::create()->findPk(9012); - * echo $book->exportTo('JSON'); - * => {"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy load(ed) columns. Defaults to TRUE. - * @return string The exported data - */ - public function exportTo($parser, $includeLazyLoadColumns = true) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - return $parser->fromArray($this->toArray(TableMap::TYPE_PHPNAME, $includeLazyLoadColumns, array(), true)); - } - - /** - * Clean up internal collections prior to serializing - * Avoids recursive loops that turn into segmentation faults when serializing - */ - public function __sleep() - { - $this->clearAllReferences(); - - return array_keys(get_object_vars($this)); - } - - /** - * Get the [id] column value. - * - * @return int - */ - public function getId() - { - - return $this->id; - } - - /** - * Get the [locale] column value. - * - * @return string - */ - public function getLocale() - { - - return $this->locale; - } - - /** - * Get the [alt] column value. - * - * @return string - */ - public function getAlt() - { - - return $this->alt; - } - - /** - * Get the [title] column value. - * - * @return string - */ - public function getTitle() - { - - return $this->title; - } - - /** - * Get the [description] column value. - * - * @return string - */ - public function getDescription() - { - - return $this->description; - } - - /** - * Get the [chapo] column value. - * - * @return string - */ - public function getChapo() - { - - return $this->chapo; - } - - /** - * Get the [postscriptum] column value. - * - * @return string - */ - public function getPostscriptum() - { - - return $this->postscriptum; - } - - /** - * Set the value of [id] column. - * - * @param int $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setId($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->id !== $v) { - $this->id = $v; - $this->modifiedColumns[CarouselI18nTableMap::ID] = true; - } - - if ($this->aCarousel !== null && $this->aCarousel->getId() !== $v) { - $this->aCarousel = null; - } - - - return $this; - } // setId() - - /** - * Set the value of [locale] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setLocale($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->locale !== $v) { - $this->locale = $v; - $this->modifiedColumns[CarouselI18nTableMap::LOCALE] = true; - } - - - return $this; - } // setLocale() - - /** - * Set the value of [alt] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setAlt($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->alt !== $v) { - $this->alt = $v; - $this->modifiedColumns[CarouselI18nTableMap::ALT] = true; - } - - - return $this; - } // setAlt() - - /** - * Set the value of [title] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setTitle($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->title !== $v) { - $this->title = $v; - $this->modifiedColumns[CarouselI18nTableMap::TITLE] = true; - } - - - return $this; - } // setTitle() - - /** - * Set the value of [description] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setDescription($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->description !== $v) { - $this->description = $v; - $this->modifiedColumns[CarouselI18nTableMap::DESCRIPTION] = true; - } - - - return $this; - } // setDescription() - - /** - * Set the value of [chapo] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setChapo($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->chapo !== $v) { - $this->chapo = $v; - $this->modifiedColumns[CarouselI18nTableMap::CHAPO] = true; - } - - - return $this; - } // setChapo() - - /** - * Set the value of [postscriptum] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setPostscriptum($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->postscriptum !== $v) { - $this->postscriptum = $v; - $this->modifiedColumns[CarouselI18nTableMap::POSTSCRIPTUM] = true; - } - - - return $this; - } // setPostscriptum() - - /** - * Indicates whether the columns in this object are only set to default values. - * - * This method can be used in conjunction with isModified() to indicate whether an object is both - * modified _and_ has some values set which are non-default. - * - * @return boolean Whether the columns in this object are only been set with default values. - */ - public function hasOnlyDefaultValues() - { - if ($this->locale !== 'en_US') { - return false; - } - - // otherwise, everything was equal, so return TRUE - return true; - } // hasOnlyDefaultValues() - - /** - * Hydrates (populates) the object variables with values from the database resultset. - * - * An offset (0-based "start column") is specified so that objects can be hydrated - * with a subset of the columns in the resultset rows. This is needed, for example, - * for results of JOIN queries where the resultset row includes columns from two or - * more tables. - * - * @param array $row The row returned by DataFetcher->fetch(). - * @param int $startcol 0-based offset column which indicates which restultset column to start with. - * @param boolean $rehydrate Whether this object is being re-hydrated from the database. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @return int next starting column - * @throws PropelException - Any caught Exception will be rewrapped as a PropelException. - */ - public function hydrate($row, $startcol = 0, $rehydrate = false, $indexType = TableMap::TYPE_NUM) - { - try { - - - $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : CarouselI18nTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; - $this->id = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CarouselI18nTableMap::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)]; - $this->locale = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CarouselI18nTableMap::translateFieldName('Alt', TableMap::TYPE_PHPNAME, $indexType)]; - $this->alt = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CarouselI18nTableMap::translateFieldName('Title', TableMap::TYPE_PHPNAME, $indexType)]; - $this->title = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CarouselI18nTableMap::translateFieldName('Description', TableMap::TYPE_PHPNAME, $indexType)]; - $this->description = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CarouselI18nTableMap::translateFieldName('Chapo', TableMap::TYPE_PHPNAME, $indexType)]; - $this->chapo = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CarouselI18nTableMap::translateFieldName('Postscriptum', TableMap::TYPE_PHPNAME, $indexType)]; - $this->postscriptum = (null !== $col) ? (string) $col : null; - $this->resetModified(); - - $this->setNew(false); - - if ($rehydrate) { - $this->ensureConsistency(); - } - - return $startcol + 7; // 7 = CarouselI18nTableMap::NUM_HYDRATE_COLUMNS. - - } catch (Exception $e) { - throw new PropelException("Error populating \Carousel\Model\CarouselI18n object", 0, $e); - } - } - - /** - * Checks and repairs the internal consistency of the object. - * - * This method is executed after an already-instantiated object is re-hydrated - * from the database. It exists to check any foreign keys to make sure that - * the objects related to the current object are correct based on foreign key. - * - * You can override this method in the stub class, but you should always invoke - * the base method from the overridden method (i.e. parent::ensureConsistency()), - * in case your model changes. - * - * @throws PropelException - */ - public function ensureConsistency() - { - if ($this->aCarousel !== null && $this->id !== $this->aCarousel->getId()) { - $this->aCarousel = null; - } - } // ensureConsistency - - /** - * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. - * - * This will only work if the object has been saved and has a valid primary key set. - * - * @param boolean $deep (optional) Whether to also de-associated any related objects. - * @param ConnectionInterface $con (optional) The ConnectionInterface connection to use. - * @return void - * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db - */ - public function reload($deep = false, ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("Cannot reload a deleted object."); - } - - if ($this->isNew()) { - throw new PropelException("Cannot reload an unsaved object."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - // We don't need to alter the object instance pool; we're just modifying this instance - // already in the pool. - - $dataFetcher = ChildCarouselI18nQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); - $row = $dataFetcher->fetch(); - $dataFetcher->close(); - if (!$row) { - throw new PropelException('Cannot find matching row in the database to reload object values.'); - } - $this->hydrate($row, 0, true, $dataFetcher->getIndexType()); // rehydrate - - if ($deep) { // also de-associate any related objects? - - $this->aCarousel = null; - } // if (deep) - } - - /** - * Removes this object from datastore and sets delete attribute. - * - * @param ConnectionInterface $con - * @return void - * @throws PropelException - * @see CarouselI18n::setDeleted() - * @see CarouselI18n::isDeleted() - */ - public function delete(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("This object has already been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - try { - $deleteQuery = ChildCarouselI18nQuery::create() - ->filterByPrimaryKey($this->getPrimaryKey()); - $ret = $this->preDelete($con); - if ($ret) { - $deleteQuery->delete($con); - $this->postDelete($con); - $con->commit(); - $this->setDeleted(true); - } else { - $con->commit(); - } - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Persists this object to the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All modified related objects will also be persisted in the doSave() - * method. This method wraps all precipitate database operations in a - * single transaction. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see doSave() - */ - public function save(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("You cannot save an object that has been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - $isInsert = $this->isNew(); - try { - $ret = $this->preSave($con); - if ($isInsert) { - $ret = $ret && $this->preInsert($con); - } else { - $ret = $ret && $this->preUpdate($con); - } - if ($ret) { - $affectedRows = $this->doSave($con); - if ($isInsert) { - $this->postInsert($con); - } else { - $this->postUpdate($con); - } - $this->postSave($con); - CarouselI18nTableMap::addInstanceToPool($this); - } else { - $affectedRows = 0; - } - $con->commit(); - - return $affectedRows; - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Performs the work of inserting or updating the row in the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All related objects are also updated in this method. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see save() - */ - protected function doSave(ConnectionInterface $con) - { - $affectedRows = 0; // initialize var to track total num of affected rows - if (!$this->alreadyInSave) { - $this->alreadyInSave = true; - - // We call the save method on the following object(s) if they - // were passed to this object by their corresponding set - // method. This object relates to these object(s) by a - // foreign key reference. - - if ($this->aCarousel !== null) { - if ($this->aCarousel->isModified() || $this->aCarousel->isNew()) { - $affectedRows += $this->aCarousel->save($con); - } - $this->setCarousel($this->aCarousel); - } - - if ($this->isNew() || $this->isModified()) { - // persist changes - if ($this->isNew()) { - $this->doInsert($con); - } else { - $this->doUpdate($con); - } - $affectedRows += 1; - $this->resetModified(); - } - - $this->alreadyInSave = false; - - } - - return $affectedRows; - } // doSave() - - /** - * Insert the row in the database. - * - * @param ConnectionInterface $con - * - * @throws PropelException - * @see doSave() - */ - protected function doInsert(ConnectionInterface $con) - { - $modifiedColumns = array(); - $index = 0; - - - // check the columns in natural order for more readable SQL queries - if ($this->isColumnModified(CarouselI18nTableMap::ID)) { - $modifiedColumns[':p' . $index++] = 'ID'; - } - if ($this->isColumnModified(CarouselI18nTableMap::LOCALE)) { - $modifiedColumns[':p' . $index++] = 'LOCALE'; - } - if ($this->isColumnModified(CarouselI18nTableMap::ALT)) { - $modifiedColumns[':p' . $index++] = 'ALT'; - } - if ($this->isColumnModified(CarouselI18nTableMap::TITLE)) { - $modifiedColumns[':p' . $index++] = 'TITLE'; - } - if ($this->isColumnModified(CarouselI18nTableMap::DESCRIPTION)) { - $modifiedColumns[':p' . $index++] = 'DESCRIPTION'; - } - if ($this->isColumnModified(CarouselI18nTableMap::CHAPO)) { - $modifiedColumns[':p' . $index++] = 'CHAPO'; - } - if ($this->isColumnModified(CarouselI18nTableMap::POSTSCRIPTUM)) { - $modifiedColumns[':p' . $index++] = 'POSTSCRIPTUM'; - } - - $sql = sprintf( - 'INSERT INTO carousel_i18n (%s) VALUES (%s)', - implode(', ', $modifiedColumns), - implode(', ', array_keys($modifiedColumns)) - ); - - try { - $stmt = $con->prepare($sql); - foreach ($modifiedColumns as $identifier => $columnName) { - switch ($columnName) { - case 'ID': - $stmt->bindValue($identifier, $this->id, PDO::PARAM_INT); - break; - case 'LOCALE': - $stmt->bindValue($identifier, $this->locale, PDO::PARAM_STR); - break; - case 'ALT': - $stmt->bindValue($identifier, $this->alt, PDO::PARAM_STR); - break; - case 'TITLE': - $stmt->bindValue($identifier, $this->title, PDO::PARAM_STR); - break; - case 'DESCRIPTION': - $stmt->bindValue($identifier, $this->description, PDO::PARAM_STR); - break; - case 'CHAPO': - $stmt->bindValue($identifier, $this->chapo, PDO::PARAM_STR); - break; - case 'POSTSCRIPTUM': - $stmt->bindValue($identifier, $this->postscriptum, PDO::PARAM_STR); - break; - } - } - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), 0, $e); - } - - $this->setNew(false); - } - - /** - * Update the row in the database. - * - * @param ConnectionInterface $con - * - * @return Integer Number of updated rows - * @see doSave() - */ - protected function doUpdate(ConnectionInterface $con) - { - $selectCriteria = $this->buildPkeyCriteria(); - $valuesCriteria = $this->buildCriteria(); - - return $selectCriteria->doUpdate($valuesCriteria, $con); - } - - /** - * Retrieves a field from the object by name passed in as a string. - * - * @param string $name name - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return mixed Value of field. - */ - public function getByName($name, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselI18nTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - $field = $this->getByPosition($pos); - - return $field; - } - - /** - * Retrieves a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @return mixed Value of field at $pos - */ - public function getByPosition($pos) - { - switch ($pos) { - case 0: - return $this->getId(); - break; - case 1: - return $this->getLocale(); - break; - case 2: - return $this->getAlt(); - break; - case 3: - return $this->getTitle(); - break; - case 4: - return $this->getDescription(); - break; - case 5: - return $this->getChapo(); - break; - case 6: - return $this->getPostscriptum(); - break; - default: - return null; - break; - } // switch() - } - - /** - * Exports the object as an array. - * - * You can specify the key type of the array by passing one of the class - * type constants. - * - * @param string $keyType (optional) One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to TRUE. - * @param array $alreadyDumpedObjects List of objects to skip to avoid recursion - * @param boolean $includeForeignObjects (optional) Whether to include hydrated related objects. Default to FALSE. - * - * @return array an associative array containing the field names (as keys) and field values - */ - public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false) - { - if (isset($alreadyDumpedObjects['CarouselI18n'][serialize($this->getPrimaryKey())])) { - return '*RECURSION*'; - } - $alreadyDumpedObjects['CarouselI18n'][serialize($this->getPrimaryKey())] = true; - $keys = CarouselI18nTableMap::getFieldNames($keyType); - $result = array( - $keys[0] => $this->getId(), - $keys[1] => $this->getLocale(), - $keys[2] => $this->getAlt(), - $keys[3] => $this->getTitle(), - $keys[4] => $this->getDescription(), - $keys[5] => $this->getChapo(), - $keys[6] => $this->getPostscriptum(), - ); - $virtualColumns = $this->virtualColumns; - foreach ($virtualColumns as $key => $virtualColumn) { - $result[$key] = $virtualColumn; - } - - if ($includeForeignObjects) { - if (null !== $this->aCarousel) { - $result['Carousel'] = $this->aCarousel->toArray($keyType, $includeLazyLoadColumns, $alreadyDumpedObjects, true); - } - } - - return $result; - } - - /** - * Sets a field from the object by name passed in as a string. - * - * @param string $name - * @param mixed $value field value - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return void - */ - public function setByName($name, $value, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselI18nTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - - return $this->setByPosition($pos, $value); - } - - /** - * Sets a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @param mixed $value field value - * @return void - */ - public function setByPosition($pos, $value) - { - switch ($pos) { - case 0: - $this->setId($value); - break; - case 1: - $this->setLocale($value); - break; - case 2: - $this->setAlt($value); - break; - case 3: - $this->setTitle($value); - break; - case 4: - $this->setDescription($value); - break; - case 5: - $this->setChapo($value); - break; - case 6: - $this->setPostscriptum($value); - break; - } // switch() - } - - /** - * Populates the object using an array. - * - * This is particularly useful when populating an object from one of the - * request arrays (e.g. $_POST). This method goes through the column - * names, checking to see whether a matching key exists in populated - * array. If so the setByName() method is called for that column. - * - * You can specify the key type of the array by additionally passing one - * of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * The default key type is the column's TableMap::TYPE_PHPNAME. - * - * @param array $arr An array to populate the object from. - * @param string $keyType The type of keys the array uses. - * @return void - */ - public function fromArray($arr, $keyType = TableMap::TYPE_PHPNAME) - { - $keys = CarouselI18nTableMap::getFieldNames($keyType); - - if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]); - if (array_key_exists($keys[1], $arr)) $this->setLocale($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setAlt($arr[$keys[2]]); - if (array_key_exists($keys[3], $arr)) $this->setTitle($arr[$keys[3]]); - if (array_key_exists($keys[4], $arr)) $this->setDescription($arr[$keys[4]]); - if (array_key_exists($keys[5], $arr)) $this->setChapo($arr[$keys[5]]); - if (array_key_exists($keys[6], $arr)) $this->setPostscriptum($arr[$keys[6]]); - } - - /** - * Build a Criteria object containing the values of all modified columns in this object. - * - * @return Criteria The Criteria object containing all modified values. - */ - public function buildCriteria() - { - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - - if ($this->isColumnModified(CarouselI18nTableMap::ID)) $criteria->add(CarouselI18nTableMap::ID, $this->id); - if ($this->isColumnModified(CarouselI18nTableMap::LOCALE)) $criteria->add(CarouselI18nTableMap::LOCALE, $this->locale); - if ($this->isColumnModified(CarouselI18nTableMap::ALT)) $criteria->add(CarouselI18nTableMap::ALT, $this->alt); - if ($this->isColumnModified(CarouselI18nTableMap::TITLE)) $criteria->add(CarouselI18nTableMap::TITLE, $this->title); - if ($this->isColumnModified(CarouselI18nTableMap::DESCRIPTION)) $criteria->add(CarouselI18nTableMap::DESCRIPTION, $this->description); - if ($this->isColumnModified(CarouselI18nTableMap::CHAPO)) $criteria->add(CarouselI18nTableMap::CHAPO, $this->chapo); - if ($this->isColumnModified(CarouselI18nTableMap::POSTSCRIPTUM)) $criteria->add(CarouselI18nTableMap::POSTSCRIPTUM, $this->postscriptum); - - return $criteria; - } - - /** - * Builds a Criteria object containing the primary key for this object. - * - * Unlike buildCriteria() this method includes the primary key values regardless - * of whether or not they have been modified. - * - * @return Criteria The Criteria object containing value(s) for primary key(s). - */ - public function buildPkeyCriteria() - { - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - $criteria->add(CarouselI18nTableMap::ID, $this->id); - $criteria->add(CarouselI18nTableMap::LOCALE, $this->locale); - - return $criteria; - } - - /** - * Returns the composite primary key for this object. - * The array elements will be in same order as specified in XML. - * @return array - */ - public function getPrimaryKey() - { - $pks = array(); - $pks[0] = $this->getId(); - $pks[1] = $this->getLocale(); - - return $pks; - } - - /** - * Set the [composite] primary key. - * - * @param array $keys The elements of the composite key (order must match the order in XML file). - * @return void - */ - public function setPrimaryKey($keys) - { - $this->setId($keys[0]); - $this->setLocale($keys[1]); - } - - /** - * Returns true if the primary key for this object is null. - * @return boolean - */ - public function isPrimaryKeyNull() - { - - return (null === $this->getId()) && (null === $this->getLocale()); - } - - /** - * Sets contents of passed object to values from current object. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param object $copyObj An object of \Carousel\Model\CarouselI18n (or compatible) type. - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new. - * @throws PropelException - */ - public function copyInto($copyObj, $deepCopy = false, $makeNew = true) - { - $copyObj->setId($this->getId()); - $copyObj->setLocale($this->getLocale()); - $copyObj->setAlt($this->getAlt()); - $copyObj->setTitle($this->getTitle()); - $copyObj->setDescription($this->getDescription()); - $copyObj->setChapo($this->getChapo()); - $copyObj->setPostscriptum($this->getPostscriptum()); - if ($makeNew) { - $copyObj->setNew(true); - } - } - - /** - * Makes a copy of this object that will be inserted as a new row in table when saved. - * It creates a new object filling in the simple attributes, but skipping any primary - * keys that are defined for the table. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @return \Carousel\Model\CarouselI18n Clone of current object. - * @throws PropelException - */ - public function copy($deepCopy = false) - { - // we use get_class(), because this might be a subclass - $clazz = get_class($this); - $copyObj = new $clazz(); - $this->copyInto($copyObj, $deepCopy); - - return $copyObj; - } - - /** - * Declares an association between this object and a ChildCarousel object. - * - * @param ChildCarousel $v - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - * @throws PropelException - */ - public function setCarousel(ChildCarousel $v = null) - { - if ($v === null) { - $this->setId(NULL); - } else { - $this->setId($v->getId()); - } - - $this->aCarousel = $v; - - // Add binding for other direction of this n:n relationship. - // If this object has already been added to the ChildCarousel object, it will not be re-added. - if ($v !== null) { - $v->addCarouselI18n($this); - } - - - return $this; - } - - - /** - * Get the associated ChildCarousel object - * - * @param ConnectionInterface $con Optional Connection object. - * @return ChildCarousel The associated ChildCarousel object. - * @throws PropelException - */ - public function getCarousel(ConnectionInterface $con = null) - { - if ($this->aCarousel === null && ($this->id !== null)) { - $this->aCarousel = ChildCarouselQuery::create()->findPk($this->id, $con); - /* The following can be used additionally to - guarantee the related object contains a reference - to this object. This level of coupling may, however, be - undesirable since it could result in an only partially populated collection - in the referenced object. - $this->aCarousel->addCarouselI18ns($this); - */ - } - - return $this->aCarousel; - } - - /** - * Clears the current object and sets all attributes to their default values - */ - public function clear() - { - $this->id = null; - $this->locale = null; - $this->alt = null; - $this->title = null; - $this->description = null; - $this->chapo = null; - $this->postscriptum = null; - $this->alreadyInSave = false; - $this->clearAllReferences(); - $this->applyDefaultValues(); - $this->resetModified(); - $this->setNew(true); - $this->setDeleted(false); - } - - /** - * Resets all references to other model objects or collections of model objects. - * - * This method is a user-space workaround for PHP's inability to garbage collect - * objects with circular references (even in PHP 5.3). This is currently necessary - * when using Propel in certain daemon or large-volume/high-memory operations. - * - * @param boolean $deep Whether to also clear the references on all referrer objects. - */ - public function clearAllReferences($deep = false) - { - if ($deep) { - } // if ($deep) - - $this->aCarousel = null; - } - - /** - * Return the string representation of this object - * - * @return string - */ - public function __toString() - { - return (string) $this->exportTo(CarouselI18nTableMap::DEFAULT_STRING_FORMAT); - } - - /** - * Code to be run before persisting the object - * @param ConnectionInterface $con - * @return boolean - */ - public function preSave(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after persisting the object - * @param ConnectionInterface $con - */ - public function postSave(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before inserting to database - * @param ConnectionInterface $con - * @return boolean - */ - public function preInsert(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after inserting to database - * @param ConnectionInterface $con - */ - public function postInsert(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before updating the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preUpdate(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after updating the object in database - * @param ConnectionInterface $con - */ - public function postUpdate(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before deleting the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preDelete(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after deleting the object in database - * @param ConnectionInterface $con - */ - public function postDelete(ConnectionInterface $con = null) - { - - } - - - /** - * Derived method to catches calls to undefined methods. - * - * Provides magic import/export method support (fromXML()/toXML(), fromYAML()/toYAML(), etc.). - * Allows to define default __call() behavior if you overwrite __call() - * - * @param string $name - * @param mixed $params - * - * @return array|string - */ - public function __call($name, $params) - { - if (0 === strpos($name, 'get')) { - $virtualColumn = substr($name, 3); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - - $virtualColumn = lcfirst($virtualColumn); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - } - - if (0 === strpos($name, 'from')) { - $format = substr($name, 4); - - return $this->importFrom($format, reset($params)); - } - - if (0 === strpos($name, 'to')) { - $format = substr($name, 2); - $includeLazyLoadColumns = isset($params[0]) ? $params[0] : true; - - return $this->exportTo($format, $includeLazyLoadColumns); - } - - throw new BadMethodCallException(sprintf('Call to undefined method: %s.', $name)); - } - -} diff --git a/local/local/modules/Carousel/Model/Base/CarouselI18nQuery.php b/local/local/modules/Carousel/Model/Base/CarouselI18nQuery.php deleted file mode 100644 index 51711281..00000000 --- a/local/local/modules/Carousel/Model/Base/CarouselI18nQuery.php +++ /dev/null @@ -1,640 +0,0 @@ -setModelAlias($modelAlias); - } - if ($criteria instanceof Criteria) { - $query->mergeWith($criteria); - } - - return $query; - } - - /** - * Find object by primary key. - * Propel uses the instance pool to skip the database if the object exists. - * Go fast if the query is untouched. - * - * - * $obj = $c->findPk(array(12, 34), $con); - * - * - * @param array[$id, $locale] $key Primary key to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n|array|mixed the result, formatted by the current formatter - */ - public function findPk($key, $con = null) - { - if ($key === null) { - return null; - } - if ((null !== ($obj = CarouselI18nTableMap::getInstanceFromPool(serialize(array((string) $key[0], (string) $key[1]))))) && !$this->formatter) { - // the object is already in the instance pool - return $obj; - } - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselI18nTableMap::DATABASE_NAME); - } - $this->basePreSelect($con); - if ($this->formatter || $this->modelAlias || $this->with || $this->select - || $this->selectColumns || $this->asColumns || $this->selectModifiers - || $this->map || $this->having || $this->joins) { - return $this->findPkComplex($key, $con); - } else { - return $this->findPkSimple($key, $con); - } - } - - /** - * Find object by primary key using raw SQL to go fast. - * Bypass doSelect() and the object formatter by using generated code. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarouselI18n A model object, or null if the key is not found - */ - protected function findPkSimple($key, $con) - { - $sql = 'SELECT ID, LOCALE, ALT, TITLE, DESCRIPTION, CHAPO, POSTSCRIPTUM FROM carousel_i18n WHERE ID = :p0 AND LOCALE = :p1'; - try { - $stmt = $con->prepare($sql); - $stmt->bindValue(':p0', $key[0], PDO::PARAM_INT); - $stmt->bindValue(':p1', $key[1], PDO::PARAM_STR); - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); - } - $obj = null; - if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { - $obj = new ChildCarouselI18n(); - $obj->hydrate($row); - CarouselI18nTableMap::addInstanceToPool($obj, serialize(array((string) $key[0], (string) $key[1]))); - } - $stmt->closeCursor(); - - return $obj; - } - - /** - * Find object by primary key. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarouselI18n|array|mixed the result, formatted by the current formatter - */ - protected function findPkComplex($key, $con) - { - // As the query uses a PK condition, no limit(1) is necessary. - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKey($key) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); - } - - /** - * Find objects by primary key - * - * $objs = $c->findPks(array(array(12, 56), array(832, 123), array(123, 456)), $con); - * - * @param array $keys Primary keys to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter - */ - public function findPks($keys, $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); - } - $this->basePreSelect($con); - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKeys($keys) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->format($dataFetcher); - } - - /** - * Filter the query by primary key - * - * @param mixed $key Primary key to use for the query - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPrimaryKey($key) - { - $this->addUsingAlias(CarouselI18nTableMap::ID, $key[0], Criteria::EQUAL); - $this->addUsingAlias(CarouselI18nTableMap::LOCALE, $key[1], Criteria::EQUAL); - - return $this; - } - - /** - * Filter the query by a list of primary keys - * - * @param array $keys The list of primary key to use for the query - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPrimaryKeys($keys) - { - if (empty($keys)) { - return $this->add(null, '1<>1', Criteria::CUSTOM); - } - foreach ($keys as $key) { - $cton0 = $this->getNewCriterion(CarouselI18nTableMap::ID, $key[0], Criteria::EQUAL); - $cton1 = $this->getNewCriterion(CarouselI18nTableMap::LOCALE, $key[1], Criteria::EQUAL); - $cton0->addAnd($cton1); - $this->addOr($cton0); - } - - return $this; - } - - /** - * Filter the query on the id column - * - * Example usage: - * - * $query->filterById(1234); // WHERE id = 1234 - * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) - * $query->filterById(array('min' => 12)); // WHERE id > 12 - * - * - * @see filterByCarousel() - * - * @param mixed $id The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterById($id = null, $comparison = null) - { - if (is_array($id)) { - $useMinMax = false; - if (isset($id['min'])) { - $this->addUsingAlias(CarouselI18nTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($id['max'])) { - $this->addUsingAlias(CarouselI18nTableMap::ID, $id['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::ID, $id, $comparison); - } - - /** - * Filter the query on the locale column - * - * Example usage: - * - * $query->filterByLocale('fooValue'); // WHERE locale = 'fooValue' - * $query->filterByLocale('%fooValue%'); // WHERE locale LIKE '%fooValue%' - * - * - * @param string $locale The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByLocale($locale = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($locale)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $locale)) { - $locale = str_replace('*', '%', $locale); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::LOCALE, $locale, $comparison); - } - - /** - * Filter the query on the alt column - * - * Example usage: - * - * $query->filterByAlt('fooValue'); // WHERE alt = 'fooValue' - * $query->filterByAlt('%fooValue%'); // WHERE alt LIKE '%fooValue%' - * - * - * @param string $alt The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByAlt($alt = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($alt)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $alt)) { - $alt = str_replace('*', '%', $alt); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::ALT, $alt, $comparison); - } - - /** - * Filter the query on the title column - * - * Example usage: - * - * $query->filterByTitle('fooValue'); // WHERE title = 'fooValue' - * $query->filterByTitle('%fooValue%'); // WHERE title LIKE '%fooValue%' - * - * - * @param string $title The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByTitle($title = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($title)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $title)) { - $title = str_replace('*', '%', $title); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::TITLE, $title, $comparison); - } - - /** - * Filter the query on the description column - * - * Example usage: - * - * $query->filterByDescription('fooValue'); // WHERE description = 'fooValue' - * $query->filterByDescription('%fooValue%'); // WHERE description LIKE '%fooValue%' - * - * - * @param string $description The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByDescription($description = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($description)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $description)) { - $description = str_replace('*', '%', $description); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::DESCRIPTION, $description, $comparison); - } - - /** - * Filter the query on the chapo column - * - * Example usage: - * - * $query->filterByChapo('fooValue'); // WHERE chapo = 'fooValue' - * $query->filterByChapo('%fooValue%'); // WHERE chapo LIKE '%fooValue%' - * - * - * @param string $chapo The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByChapo($chapo = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($chapo)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $chapo)) { - $chapo = str_replace('*', '%', $chapo); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::CHAPO, $chapo, $comparison); - } - - /** - * Filter the query on the postscriptum column - * - * Example usage: - * - * $query->filterByPostscriptum('fooValue'); // WHERE postscriptum = 'fooValue' - * $query->filterByPostscriptum('%fooValue%'); // WHERE postscriptum LIKE '%fooValue%' - * - * - * @param string $postscriptum The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPostscriptum($postscriptum = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($postscriptum)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $postscriptum)) { - $postscriptum = str_replace('*', '%', $postscriptum); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::POSTSCRIPTUM, $postscriptum, $comparison); - } - - /** - * Filter the query by a related \Carousel\Model\Carousel object - * - * @param \Carousel\Model\Carousel|ObjectCollection $carousel The related object(s) to use as filter - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByCarousel($carousel, $comparison = null) - { - if ($carousel instanceof \Carousel\Model\Carousel) { - return $this - ->addUsingAlias(CarouselI18nTableMap::ID, $carousel->getId(), $comparison); - } elseif ($carousel instanceof ObjectCollection) { - if (null === $comparison) { - $comparison = Criteria::IN; - } - - return $this - ->addUsingAlias(CarouselI18nTableMap::ID, $carousel->toKeyValue('PrimaryKey', 'Id'), $comparison); - } else { - throw new PropelException('filterByCarousel() only accepts arguments of type \Carousel\Model\Carousel or Collection'); - } - } - - /** - * Adds a JOIN clause to the query using the Carousel relation - * - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function joinCarousel($relationAlias = null, $joinType = 'LEFT JOIN') - { - $tableMap = $this->getTableMap(); - $relationMap = $tableMap->getRelation('Carousel'); - - // create a ModelJoin object for this join - $join = new ModelJoin(); - $join->setJoinType($joinType); - $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); - if ($previousJoin = $this->getPreviousJoin()) { - $join->setPreviousJoin($previousJoin); - } - - // add the ModelJoin to the current object - if ($relationAlias) { - $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); - $this->addJoinObject($join, $relationAlias); - } else { - $this->addJoinObject($join, 'Carousel'); - } - - return $this; - } - - /** - * Use the Carousel relation Carousel object - * - * @see useQuery() - * - * @param string $relationAlias optional alias for the relation, - * to be used as main alias in the secondary query - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return \Carousel\Model\CarouselQuery A secondary query class using the current class as primary query - */ - public function useCarouselQuery($relationAlias = null, $joinType = 'LEFT JOIN') - { - return $this - ->joinCarousel($relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'Carousel', '\Carousel\Model\CarouselQuery'); - } - - /** - * Exclude object from result - * - * @param ChildCarouselI18n $carouselI18n Object to remove from the list of results - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function prune($carouselI18n = null) - { - if ($carouselI18n) { - $this->addCond('pruneCond0', $this->getAliasedColName(CarouselI18nTableMap::ID), $carouselI18n->getId(), Criteria::NOT_EQUAL); - $this->addCond('pruneCond1', $this->getAliasedColName(CarouselI18nTableMap::LOCALE), $carouselI18n->getLocale(), Criteria::NOT_EQUAL); - $this->combine(array('pruneCond0', 'pruneCond1'), Criteria::LOGICAL_OR); - } - - return $this; - } - - /** - * Deletes all rows from the carousel_i18n table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public function doDeleteAll(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - $affectedRows = 0; // initialize var to track total num of affected rows - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - $affectedRows += parent::doDeleteAll($con); - // Because this db requires some delete cascade/set null emulation, we have to - // clear the cached instance *after* the emulation has happened (since - // instances get re-added by the select statement contained therein). - CarouselI18nTableMap::clearInstancePool(); - CarouselI18nTableMap::clearRelatedInstancePool(); - - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $affectedRows; - } - - /** - * Performs a DELETE on the database, given a ChildCarouselI18n or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or ChildCarouselI18n object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public function delete(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - $criteria = $this; - - // Set the correct dbName - $criteria->setDbName(CarouselI18nTableMap::DATABASE_NAME); - - $affectedRows = 0; // initialize var to track total num of affected rows - - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - - - CarouselI18nTableMap::removeInstanceFromPool($criteria); - - $affectedRows += ModelCriteria::delete($con); - CarouselI18nTableMap::clearRelatedInstancePool(); - $con->commit(); - - return $affectedRows; - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - } - -} // CarouselI18nQuery diff --git a/local/local/modules/Carousel/Model/Base/CarouselQuery.php b/local/local/modules/Carousel/Model/Base/CarouselQuery.php deleted file mode 100644 index b9387e00..00000000 --- a/local/local/modules/Carousel/Model/Base/CarouselQuery.php +++ /dev/null @@ -1,753 +0,0 @@ -setModelAlias($modelAlias); - } - if ($criteria instanceof Criteria) { - $query->mergeWith($criteria); - } - - return $query; - } - - /** - * Find object by primary key. - * Propel uses the instance pool to skip the database if the object exists. - * Go fast if the query is untouched. - * - * - * $obj = $c->findPk(12, $con); - * - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarousel|array|mixed the result, formatted by the current formatter - */ - public function findPk($key, $con = null) - { - if ($key === null) { - return null; - } - if ((null !== ($obj = CarouselTableMap::getInstanceFromPool((string) $key))) && !$this->formatter) { - // the object is already in the instance pool - return $obj; - } - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselTableMap::DATABASE_NAME); - } - $this->basePreSelect($con); - if ($this->formatter || $this->modelAlias || $this->with || $this->select - || $this->selectColumns || $this->asColumns || $this->selectModifiers - || $this->map || $this->having || $this->joins) { - return $this->findPkComplex($key, $con); - } else { - return $this->findPkSimple($key, $con); - } - } - - /** - * Find object by primary key using raw SQL to go fast. - * Bypass doSelect() and the object formatter by using generated code. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarousel A model object, or null if the key is not found - */ - protected function findPkSimple($key, $con) - { - $sql = 'SELECT ID, FILE, POSITION, URL, CREATED_AT, UPDATED_AT FROM carousel WHERE ID = :p0'; - try { - $stmt = $con->prepare($sql); - $stmt->bindValue(':p0', $key, PDO::PARAM_INT); - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); - } - $obj = null; - if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { - $obj = new ChildCarousel(); - $obj->hydrate($row); - CarouselTableMap::addInstanceToPool($obj, (string) $key); - } - $stmt->closeCursor(); - - return $obj; - } - - /** - * Find object by primary key. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarousel|array|mixed the result, formatted by the current formatter - */ - protected function findPkComplex($key, $con) - { - // As the query uses a PK condition, no limit(1) is necessary. - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKey($key) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); - } - - /** - * Find objects by primary key - * - * $objs = $c->findPks(array(12, 56, 832), $con); - * - * @param array $keys Primary keys to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter - */ - public function findPks($keys, $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); - } - $this->basePreSelect($con); - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKeys($keys) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->format($dataFetcher); - } - - /** - * Filter the query by primary key - * - * @param mixed $key Primary key to use for the query - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPrimaryKey($key) - { - - return $this->addUsingAlias(CarouselTableMap::ID, $key, Criteria::EQUAL); - } - - /** - * Filter the query by a list of primary keys - * - * @param array $keys The list of primary key to use for the query - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPrimaryKeys($keys) - { - - return $this->addUsingAlias(CarouselTableMap::ID, $keys, Criteria::IN); - } - - /** - * Filter the query on the id column - * - * Example usage: - * - * $query->filterById(1234); // WHERE id = 1234 - * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) - * $query->filterById(array('min' => 12)); // WHERE id > 12 - * - * - * @param mixed $id The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterById($id = null, $comparison = null) - { - if (is_array($id)) { - $useMinMax = false; - if (isset($id['min'])) { - $this->addUsingAlias(CarouselTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($id['max'])) { - $this->addUsingAlias(CarouselTableMap::ID, $id['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::ID, $id, $comparison); - } - - /** - * Filter the query on the file column - * - * Example usage: - * - * $query->filterByFile('fooValue'); // WHERE file = 'fooValue' - * $query->filterByFile('%fooValue%'); // WHERE file LIKE '%fooValue%' - * - * - * @param string $file The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByFile($file = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($file)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $file)) { - $file = str_replace('*', '%', $file); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselTableMap::FILE, $file, $comparison); - } - - /** - * Filter the query on the position column - * - * Example usage: - * - * $query->filterByPosition(1234); // WHERE position = 1234 - * $query->filterByPosition(array(12, 34)); // WHERE position IN (12, 34) - * $query->filterByPosition(array('min' => 12)); // WHERE position > 12 - * - * - * @param mixed $position The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPosition($position = null, $comparison = null) - { - if (is_array($position)) { - $useMinMax = false; - if (isset($position['min'])) { - $this->addUsingAlias(CarouselTableMap::POSITION, $position['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($position['max'])) { - $this->addUsingAlias(CarouselTableMap::POSITION, $position['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::POSITION, $position, $comparison); - } - - /** - * Filter the query on the url column - * - * Example usage: - * - * $query->filterByUrl('fooValue'); // WHERE url = 'fooValue' - * $query->filterByUrl('%fooValue%'); // WHERE url LIKE '%fooValue%' - * - * - * @param string $url The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByUrl($url = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($url)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $url)) { - $url = str_replace('*', '%', $url); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselTableMap::URL, $url, $comparison); - } - - /** - * Filter the query on the created_at column - * - * Example usage: - * - * $query->filterByCreatedAt('2011-03-14'); // WHERE created_at = '2011-03-14' - * $query->filterByCreatedAt('now'); // WHERE created_at = '2011-03-14' - * $query->filterByCreatedAt(array('max' => 'yesterday')); // WHERE created_at > '2011-03-13' - * - * - * @param mixed $createdAt The value to use as filter. - * Values can be integers (unix timestamps), DateTime objects, or strings. - * Empty strings are treated as NULL. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByCreatedAt($createdAt = null, $comparison = null) - { - if (is_array($createdAt)) { - $useMinMax = false; - if (isset($createdAt['min'])) { - $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($createdAt['max'])) { - $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt, $comparison); - } - - /** - * Filter the query on the updated_at column - * - * Example usage: - * - * $query->filterByUpdatedAt('2011-03-14'); // WHERE updated_at = '2011-03-14' - * $query->filterByUpdatedAt('now'); // WHERE updated_at = '2011-03-14' - * $query->filterByUpdatedAt(array('max' => 'yesterday')); // WHERE updated_at > '2011-03-13' - * - * - * @param mixed $updatedAt The value to use as filter. - * Values can be integers (unix timestamps), DateTime objects, or strings. - * Empty strings are treated as NULL. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByUpdatedAt($updatedAt = null, $comparison = null) - { - if (is_array($updatedAt)) { - $useMinMax = false; - if (isset($updatedAt['min'])) { - $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($updatedAt['max'])) { - $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt, $comparison); - } - - /** - * Filter the query by a related \Carousel\Model\CarouselI18n object - * - * @param \Carousel\Model\CarouselI18n|ObjectCollection $carouselI18n the related object to use as filter - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByCarouselI18n($carouselI18n, $comparison = null) - { - if ($carouselI18n instanceof \Carousel\Model\CarouselI18n) { - return $this - ->addUsingAlias(CarouselTableMap::ID, $carouselI18n->getId(), $comparison); - } elseif ($carouselI18n instanceof ObjectCollection) { - return $this - ->useCarouselI18nQuery() - ->filterByPrimaryKeys($carouselI18n->getPrimaryKeys()) - ->endUse(); - } else { - throw new PropelException('filterByCarouselI18n() only accepts arguments of type \Carousel\Model\CarouselI18n or Collection'); - } - } - - /** - * Adds a JOIN clause to the query using the CarouselI18n relation - * - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinCarouselI18n($relationAlias = null, $joinType = 'LEFT JOIN') - { - $tableMap = $this->getTableMap(); - $relationMap = $tableMap->getRelation('CarouselI18n'); - - // create a ModelJoin object for this join - $join = new ModelJoin(); - $join->setJoinType($joinType); - $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); - if ($previousJoin = $this->getPreviousJoin()) { - $join->setPreviousJoin($previousJoin); - } - - // add the ModelJoin to the current object - if ($relationAlias) { - $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); - $this->addJoinObject($join, $relationAlias); - } else { - $this->addJoinObject($join, 'CarouselI18n'); - } - - return $this; - } - - /** - * Use the CarouselI18n relation CarouselI18n object - * - * @see useQuery() - * - * @param string $relationAlias optional alias for the relation, - * to be used as main alias in the secondary query - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return \Carousel\Model\CarouselI18nQuery A secondary query class using the current class as primary query - */ - public function useCarouselI18nQuery($relationAlias = null, $joinType = 'LEFT JOIN') - { - return $this - ->joinCarouselI18n($relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'CarouselI18n', '\Carousel\Model\CarouselI18nQuery'); - } - - /** - * Exclude object from result - * - * @param ChildCarousel $carousel Object to remove from the list of results - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function prune($carousel = null) - { - if ($carousel) { - $this->addUsingAlias(CarouselTableMap::ID, $carousel->getId(), Criteria::NOT_EQUAL); - } - - return $this; - } - - /** - * Deletes all rows from the carousel table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public function doDeleteAll(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - $affectedRows = 0; // initialize var to track total num of affected rows - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - $affectedRows += parent::doDeleteAll($con); - // Because this db requires some delete cascade/set null emulation, we have to - // clear the cached instance *after* the emulation has happened (since - // instances get re-added by the select statement contained therein). - CarouselTableMap::clearInstancePool(); - CarouselTableMap::clearRelatedInstancePool(); - - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $affectedRows; - } - - /** - * Performs a DELETE on the database, given a ChildCarousel or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or ChildCarousel object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public function delete(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $criteria = $this; - - // Set the correct dbName - $criteria->setDbName(CarouselTableMap::DATABASE_NAME); - - $affectedRows = 0; // initialize var to track total num of affected rows - - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - - - CarouselTableMap::removeInstanceFromPool($criteria); - - $affectedRows += ModelCriteria::delete($con); - CarouselTableMap::clearRelatedInstancePool(); - $con->commit(); - - return $affectedRows; - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - } - - // timestampable behavior - - /** - * Filter by the latest updated - * - * @param int $nbDays Maximum age of the latest update in days - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function recentlyUpdated($nbDays = 7) - { - return $this->addUsingAlias(CarouselTableMap::UPDATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); - } - - /** - * Filter by the latest created - * - * @param int $nbDays Maximum age of in days - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function recentlyCreated($nbDays = 7) - { - return $this->addUsingAlias(CarouselTableMap::CREATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); - } - - /** - * Order by update date desc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function lastUpdatedFirst() - { - return $this->addDescendingOrderByColumn(CarouselTableMap::UPDATED_AT); - } - - /** - * Order by update date asc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function firstUpdatedFirst() - { - return $this->addAscendingOrderByColumn(CarouselTableMap::UPDATED_AT); - } - - /** - * Order by create date desc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function lastCreatedFirst() - { - return $this->addDescendingOrderByColumn(CarouselTableMap::CREATED_AT); - } - - /** - * Order by create date asc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function firstCreatedFirst() - { - return $this->addAscendingOrderByColumn(CarouselTableMap::CREATED_AT); - } - - // i18n behavior - - /** - * Adds a JOIN clause to the query using the i18n relation - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinI18n($locale = 'en_US', $relationAlias = null, $joinType = Criteria::LEFT_JOIN) - { - $relationName = $relationAlias ? $relationAlias : 'CarouselI18n'; - - return $this - ->joinCarouselI18n($relationAlias, $joinType) - ->addJoinCondition($relationName, $relationName . '.Locale = ?', $locale); - } - - /** - * Adds a JOIN clause to the query and hydrates the related I18n object. - * Shortcut for $c->joinI18n($locale)->with() - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinWithI18n($locale = 'en_US', $joinType = Criteria::LEFT_JOIN) - { - $this - ->joinI18n($locale, null, $joinType) - ->with('CarouselI18n'); - $this->with['CarouselI18n']->setIsWithOneToMany(false); - - return $this; - } - - /** - * Use the I18n relation query object - * - * @see useQuery() - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselI18nQuery A secondary query class using the current class as primary query - */ - public function useI18nQuery($locale = 'en_US', $relationAlias = null, $joinType = Criteria::LEFT_JOIN) - { - return $this - ->joinI18n($locale, $relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'CarouselI18n', '\Carousel\Model\CarouselI18nQuery'); - } - -} // CarouselQuery diff --git a/local/local/modules/Carousel/Model/Carousel.php b/local/local/modules/Carousel/Model/Carousel.php deleted file mode 100644 index 50971104..00000000 --- a/local/local/modules/Carousel/Model/Carousel.php +++ /dev/null @@ -1,113 +0,0 @@ -remove($carousel->getUploadDir() . DS . $this->getFile()); - - return true; - } catch (IOException $e) { - return false; - } - } - - /** - * Set file parent id - * - * @param int $parentId parent id - * - * @return $this - */ - public function setParentId($parentId) - { - return $this; - } - - /** - * Get file parent id - * - * @return int parent id - */ - public function getParentId() - { - return $this->getId(); - } - - /** - * @return FileModelParentInterface the parent file model - */ - public function getParentFileModel() - { - return new static; - } - - /** - * Get the ID of the form used to change this object information - * - * @return BaseForm the form - */ - public function getUpdateFormId() - { - return 'carousel.image'; - } - - /** - * @return string the path to the upload directory where files are stored, without final slash - */ - public function getUploadDir() - { - $carousel = new \Carousel\Carousel(); - return $carousel->getUploadDir(); - } - - /** - * @param int $objectId the object ID - * - * @return string the URL to redirect to after update from the back-office - */ - public function getRedirectionUrl() - { - return '/admin/module/Carousel'; - } - - /** - * Get the Query instance for this object - * - * @return ModelCriteria - */ - public function getQueryInstance() - { - return CarouselQuery::create(); - } - - /** - * @param bool $visible true if the file is visible, false otherwise - * @return FileModelInterface - */ - public function setVisible($visible) - { - // Not implemented - - return $this; - } -} diff --git a/local/local/modules/Carousel/Model/CarouselI18n.php b/local/local/modules/Carousel/Model/CarouselI18n.php deleted file mode 100644 index d03081e3..00000000 --- a/local/local/modules/Carousel/Model/CarouselI18n.php +++ /dev/null @@ -1,10 +0,0 @@ -orderByPosition() - ->find(); - } -} // CarouselQuery diff --git a/local/local/modules/Carousel/Model/Map/CarouselI18nTableMap.php b/local/local/modules/Carousel/Model/Map/CarouselI18nTableMap.php deleted file mode 100644 index e63326c5..00000000 --- a/local/local/modules/Carousel/Model/Map/CarouselI18nTableMap.php +++ /dev/null @@ -1,506 +0,0 @@ - array('Id', 'Locale', 'Alt', 'Title', 'Description', 'Chapo', 'Postscriptum', ), - self::TYPE_STUDLYPHPNAME => array('id', 'locale', 'alt', 'title', 'description', 'chapo', 'postscriptum', ), - self::TYPE_COLNAME => array(CarouselI18nTableMap::ID, CarouselI18nTableMap::LOCALE, CarouselI18nTableMap::ALT, CarouselI18nTableMap::TITLE, CarouselI18nTableMap::DESCRIPTION, CarouselI18nTableMap::CHAPO, CarouselI18nTableMap::POSTSCRIPTUM, ), - self::TYPE_RAW_COLNAME => array('ID', 'LOCALE', 'ALT', 'TITLE', 'DESCRIPTION', 'CHAPO', 'POSTSCRIPTUM', ), - self::TYPE_FIELDNAME => array('id', 'locale', 'alt', 'title', 'description', 'chapo', 'postscriptum', ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, ) - ); - - /** - * holds an array of keys for quick access to the fieldnames array - * - * first dimension keys are the type constants - * e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0 - */ - protected static $fieldKeys = array ( - self::TYPE_PHPNAME => array('Id' => 0, 'Locale' => 1, 'Alt' => 2, 'Title' => 3, 'Description' => 4, 'Chapo' => 5, 'Postscriptum' => 6, ), - self::TYPE_STUDLYPHPNAME => array('id' => 0, 'locale' => 1, 'alt' => 2, 'title' => 3, 'description' => 4, 'chapo' => 5, 'postscriptum' => 6, ), - self::TYPE_COLNAME => array(CarouselI18nTableMap::ID => 0, CarouselI18nTableMap::LOCALE => 1, CarouselI18nTableMap::ALT => 2, CarouselI18nTableMap::TITLE => 3, CarouselI18nTableMap::DESCRIPTION => 4, CarouselI18nTableMap::CHAPO => 5, CarouselI18nTableMap::POSTSCRIPTUM => 6, ), - self::TYPE_RAW_COLNAME => array('ID' => 0, 'LOCALE' => 1, 'ALT' => 2, 'TITLE' => 3, 'DESCRIPTION' => 4, 'CHAPO' => 5, 'POSTSCRIPTUM' => 6, ), - self::TYPE_FIELDNAME => array('id' => 0, 'locale' => 1, 'alt' => 2, 'title' => 3, 'description' => 4, 'chapo' => 5, 'postscriptum' => 6, ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, ) - ); - - /** - * Initialize the table attributes and columns - * Relations are not initialized by this method since they are lazy loaded - * - * @return void - * @throws PropelException - */ - public function initialize() - { - // attributes - $this->setName('carousel_i18n'); - $this->setPhpName('CarouselI18n'); - $this->setClassName('\\Carousel\\Model\\CarouselI18n'); - $this->setPackage('Carousel.Model'); - $this->setUseIdGenerator(false); - // columns - $this->addForeignPrimaryKey('ID', 'Id', 'INTEGER' , 'carousel', 'ID', true, null, null); - $this->addPrimaryKey('LOCALE', 'Locale', 'VARCHAR', true, 5, 'en_US'); - $this->addColumn('ALT', 'Alt', 'VARCHAR', false, 255, null); - $this->addColumn('TITLE', 'Title', 'VARCHAR', false, 255, null); - $this->addColumn('DESCRIPTION', 'Description', 'CLOB', false, null, null); - $this->addColumn('CHAPO', 'Chapo', 'LONGVARCHAR', false, null, null); - $this->addColumn('POSTSCRIPTUM', 'Postscriptum', 'LONGVARCHAR', false, null, null); - } // initialize() - - /** - * Build the RelationMap objects for this table relationships - */ - public function buildRelations() - { - $this->addRelation('Carousel', '\\Carousel\\Model\\Carousel', RelationMap::MANY_TO_ONE, array('id' => 'id', ), 'CASCADE', null); - } // buildRelations() - - /** - * Adds an object to the instance pool. - * - * Propel keeps cached copies of objects in an instance pool when they are retrieved - * from the database. In some cases you may need to explicitly add objects - * to the cache in order to ensure that the same objects are always returned by find*() - * and findPk*() calls. - * - * @param \Carousel\Model\CarouselI18n $obj A \Carousel\Model\CarouselI18n object. - * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). - */ - public static function addInstanceToPool($obj, $key = null) - { - if (Propel::isInstancePoolingEnabled()) { - if (null === $key) { - $key = serialize(array((string) $obj->getId(), (string) $obj->getLocale())); - } // if key === null - self::$instances[$key] = $obj; - } - } - - /** - * Removes an object from the instance pool. - * - * Propel keeps cached copies of objects in an instance pool when they are retrieved - * from the database. In some cases -- especially when you override doDelete - * methods in your stub classes -- you may need to explicitly remove objects - * from the cache in order to prevent returning objects that no longer exist. - * - * @param mixed $value A \Carousel\Model\CarouselI18n object or a primary key value. - */ - public static function removeInstanceFromPool($value) - { - if (Propel::isInstancePoolingEnabled() && null !== $value) { - if (is_object($value) && $value instanceof \Carousel\Model\CarouselI18n) { - $key = serialize(array((string) $value->getId(), (string) $value->getLocale())); - - } elseif (is_array($value) && count($value) === 2) { - // assume we've been passed a primary key"; - $key = serialize(array((string) $value[0], (string) $value[1])); - } elseif ($value instanceof Criteria) { - self::$instances = []; - - return; - } else { - $e = new PropelException("Invalid value passed to removeInstanceFromPool(). Expected primary key or \Carousel\Model\CarouselI18n object; got " . (is_object($value) ? get_class($value) . ' object.' : var_export($value, true))); - throw $e; - } - - unset(self::$instances[$key]); - } - } - - /** - * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table. - * - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, a serialize()d version of the primary key will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - */ - public static function getPrimaryKeyHashFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - // If the PK cannot be derived from the row, return NULL. - if ($row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)] === null && $row[TableMap::TYPE_NUM == $indexType ? 1 + $offset : static::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)] === null) { - return null; - } - - return serialize(array((string) $row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)], (string) $row[TableMap::TYPE_NUM == $indexType ? 1 + $offset : static::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)])); - } - - /** - * Retrieves the primary key from the DB resultset row - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, an array of the primary key columns will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - * - * @return mixed The primary key of the row - */ - public static function getPrimaryKeyFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - - return $pks; - } - - /** - * The class that the tableMap will make instances of. - * - * If $withPrefix is true, the returned path - * uses a dot-path notation which is translated into a path - * relative to a location on the PHP include_path. - * (e.g. path.to.MyClass -> 'path/to/MyClass.php') - * - * @param boolean $withPrefix Whether or not to return the path with the class name - * @return string path.to.ClassName - */ - public static function getOMClass($withPrefix = true) - { - return $withPrefix ? CarouselI18nTableMap::CLASS_DEFAULT : CarouselI18nTableMap::OM_CLASS; - } - - /** - * Populates an object of the default type or an object that inherit from the default. - * - * @param array $row row returned by DataFetcher->fetch(). - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - * @return array (CarouselI18n object, last column rank) - */ - public static function populateObject($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - $key = CarouselI18nTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); - if (null !== ($obj = CarouselI18nTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, $offset, true); // rehydrate - $col = $offset + CarouselI18nTableMap::NUM_HYDRATE_COLUMNS; - } else { - $cls = CarouselI18nTableMap::OM_CLASS; - $obj = new $cls(); - $col = $obj->hydrate($row, $offset, false, $indexType); - CarouselI18nTableMap::addInstanceToPool($obj, $key); - } - - return array($obj, $col); - } - - /** - * The returned array will contain objects of the default type or - * objects that inherit from the default. - * - * @param DataFetcherInterface $dataFetcher - * @return array - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function populateObjects(DataFetcherInterface $dataFetcher) - { - $results = array(); - - // set the class once to avoid overhead in the loop - $cls = static::getOMClass(false); - // populate the object(s) - while ($row = $dataFetcher->fetch()) { - $key = CarouselI18nTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); - if (null !== ($obj = CarouselI18nTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, 0, true); // rehydrate - $results[] = $obj; - } else { - $obj = new $cls(); - $obj->hydrate($row); - $results[] = $obj; - CarouselI18nTableMap::addInstanceToPool($obj, $key); - } // if key exists - } - - return $results; - } - /** - * Add all the columns needed to create a new object. - * - * Note: any columns that were marked with lazyLoad="true" in the - * XML schema will not be added to the select list and only loaded - * on demand. - * - * @param Criteria $criteria object containing the columns to add. - * @param string $alias optional table alias - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function addSelectColumns(Criteria $criteria, $alias = null) - { - if (null === $alias) { - $criteria->addSelectColumn(CarouselI18nTableMap::ID); - $criteria->addSelectColumn(CarouselI18nTableMap::LOCALE); - $criteria->addSelectColumn(CarouselI18nTableMap::ALT); - $criteria->addSelectColumn(CarouselI18nTableMap::TITLE); - $criteria->addSelectColumn(CarouselI18nTableMap::DESCRIPTION); - $criteria->addSelectColumn(CarouselI18nTableMap::CHAPO); - $criteria->addSelectColumn(CarouselI18nTableMap::POSTSCRIPTUM); - } else { - $criteria->addSelectColumn($alias . '.ID'); - $criteria->addSelectColumn($alias . '.LOCALE'); - $criteria->addSelectColumn($alias . '.ALT'); - $criteria->addSelectColumn($alias . '.TITLE'); - $criteria->addSelectColumn($alias . '.DESCRIPTION'); - $criteria->addSelectColumn($alias . '.CHAPO'); - $criteria->addSelectColumn($alias . '.POSTSCRIPTUM'); - } - } - - /** - * Returns the TableMap related to this object. - * This method is not needed for general use but a specific application could have a need. - * @return TableMap - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function getTableMap() - { - return Propel::getServiceContainer()->getDatabaseMap(CarouselI18nTableMap::DATABASE_NAME)->getTable(CarouselI18nTableMap::TABLE_NAME); - } - - /** - * Add a TableMap instance to the database for this tableMap class. - */ - public static function buildTableMap() - { - $dbMap = Propel::getServiceContainer()->getDatabaseMap(CarouselI18nTableMap::DATABASE_NAME); - if (!$dbMap->hasTable(CarouselI18nTableMap::TABLE_NAME)) { - $dbMap->addTableObject(new CarouselI18nTableMap()); - } - } - - /** - * Performs a DELETE on the database, given a CarouselI18n or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or CarouselI18n object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doDelete($values, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - if ($values instanceof Criteria) { - // rename for clarity - $criteria = $values; - } elseif ($values instanceof \Carousel\Model\CarouselI18n) { // it's a model object - // create criteria based on pk values - $criteria = $values->buildPkeyCriteria(); - } else { // it's a primary key, or an array of pks - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - // primary key is composite; we therefore, expect - // the primary key passed to be an array of pkey values - if (count($values) == count($values, COUNT_RECURSIVE)) { - // array is not multi-dimensional - $values = array($values); - } - foreach ($values as $value) { - $criterion = $criteria->getNewCriterion(CarouselI18nTableMap::ID, $value[0]); - $criterion->addAnd($criteria->getNewCriterion(CarouselI18nTableMap::LOCALE, $value[1])); - $criteria->addOr($criterion); - } - } - - $query = CarouselI18nQuery::create()->mergeWith($criteria); - - if ($values instanceof Criteria) { CarouselI18nTableMap::clearInstancePool(); - } elseif (!is_object($values)) { // it's a primary key, or an array of pks - foreach ((array) $values as $singleval) { CarouselI18nTableMap::removeInstanceFromPool($singleval); - } - } - - return $query->delete($con); - } - - /** - * Deletes all rows from the carousel_i18n table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public static function doDeleteAll(ConnectionInterface $con = null) - { - return CarouselI18nQuery::create()->doDeleteAll($con); - } - - /** - * Performs an INSERT on the database, given a CarouselI18n or Criteria object. - * - * @param mixed $criteria Criteria or CarouselI18n object containing data that is used to create the INSERT statement. - * @param ConnectionInterface $con the ConnectionInterface connection to use - * @return mixed The new primary key. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doInsert($criteria, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - if ($criteria instanceof Criteria) { - $criteria = clone $criteria; // rename for clarity - } else { - $criteria = $criteria->buildCriteria(); // build Criteria from CarouselI18n object - } - - - // Set the correct dbName - $query = CarouselI18nQuery::create()->mergeWith($criteria); - - try { - // use transaction because $criteria could contain info - // for more than one table (I guess, conceivably) - $con->beginTransaction(); - $pk = $query->doInsert($con); - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $pk; - } - -} // CarouselI18nTableMap -// This is the static code needed to register the TableMap for this table with the main Propel class. -// -CarouselI18nTableMap::buildTableMap(); diff --git a/local/local/modules/Carousel/Model/Map/CarouselTableMap.php b/local/local/modules/Carousel/Model/Map/CarouselTableMap.php deleted file mode 100644 index ca7b8883..00000000 --- a/local/local/modules/Carousel/Model/Map/CarouselTableMap.php +++ /dev/null @@ -1,475 +0,0 @@ - array('Id', 'File', 'Position', 'Url', 'CreatedAt', 'UpdatedAt', ), - self::TYPE_STUDLYPHPNAME => array('id', 'file', 'position', 'url', 'createdAt', 'updatedAt', ), - self::TYPE_COLNAME => array(CarouselTableMap::ID, CarouselTableMap::FILE, CarouselTableMap::POSITION, CarouselTableMap::URL, CarouselTableMap::CREATED_AT, CarouselTableMap::UPDATED_AT, ), - self::TYPE_RAW_COLNAME => array('ID', 'FILE', 'POSITION', 'URL', 'CREATED_AT', 'UPDATED_AT', ), - self::TYPE_FIELDNAME => array('id', 'file', 'position', 'url', 'created_at', 'updated_at', ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, ) - ); - - /** - * holds an array of keys for quick access to the fieldnames array - * - * first dimension keys are the type constants - * e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0 - */ - protected static $fieldKeys = array ( - self::TYPE_PHPNAME => array('Id' => 0, 'File' => 1, 'Position' => 2, 'Url' => 3, 'CreatedAt' => 4, 'UpdatedAt' => 5, ), - self::TYPE_STUDLYPHPNAME => array('id' => 0, 'file' => 1, 'position' => 2, 'url' => 3, 'createdAt' => 4, 'updatedAt' => 5, ), - self::TYPE_COLNAME => array(CarouselTableMap::ID => 0, CarouselTableMap::FILE => 1, CarouselTableMap::POSITION => 2, CarouselTableMap::URL => 3, CarouselTableMap::CREATED_AT => 4, CarouselTableMap::UPDATED_AT => 5, ), - self::TYPE_RAW_COLNAME => array('ID' => 0, 'FILE' => 1, 'POSITION' => 2, 'URL' => 3, 'CREATED_AT' => 4, 'UPDATED_AT' => 5, ), - self::TYPE_FIELDNAME => array('id' => 0, 'file' => 1, 'position' => 2, 'url' => 3, 'created_at' => 4, 'updated_at' => 5, ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, ) - ); - - /** - * Initialize the table attributes and columns - * Relations are not initialized by this method since they are lazy loaded - * - * @return void - * @throws PropelException - */ - public function initialize() - { - // attributes - $this->setName('carousel'); - $this->setPhpName('Carousel'); - $this->setClassName('\\Carousel\\Model\\Carousel'); - $this->setPackage('Carousel.Model'); - $this->setUseIdGenerator(true); - // columns - $this->addPrimaryKey('ID', 'Id', 'INTEGER', true, null, null); - $this->addColumn('FILE', 'File', 'VARCHAR', false, 255, null); - $this->addColumn('POSITION', 'Position', 'INTEGER', false, null, null); - $this->addColumn('URL', 'Url', 'VARCHAR', false, 255, null); - $this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null); - $this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null); - } // initialize() - - /** - * Build the RelationMap objects for this table relationships - */ - public function buildRelations() - { - $this->addRelation('CarouselI18n', '\\Carousel\\Model\\CarouselI18n', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'CarouselI18ns'); - } // buildRelations() - - /** - * - * Gets the list of behaviors registered for this table - * - * @return array Associative array (name => parameters) of behaviors - */ - public function getBehaviors() - { - return array( - 'timestampable' => array('create_column' => 'created_at', 'update_column' => 'updated_at', ), - 'i18n' => array('i18n_table' => '%TABLE%_i18n', 'i18n_phpname' => '%PHPNAME%I18n', 'i18n_columns' => 'alt, title, description, chapo, postscriptum', 'locale_column' => 'locale', 'locale_length' => '5', 'default_locale' => '', 'locale_alias' => '', ), - ); - } // getBehaviors() - /** - * Method to invalidate the instance pool of all tables related to carousel * by a foreign key with ON DELETE CASCADE - */ - public static function clearRelatedInstancePool() - { - // Invalidate objects in ".$this->getClassNameFromBuilder($joinedTableTableMapBuilder)." instance pool, - // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. - CarouselI18nTableMap::clearInstancePool(); - } - - /** - * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table. - * - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, a serialize()d version of the primary key will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - */ - public static function getPrimaryKeyHashFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - // If the PK cannot be derived from the row, return NULL. - if ($row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)] === null) { - return null; - } - - return (string) $row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; - } - - /** - * Retrieves the primary key from the DB resultset row - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, an array of the primary key columns will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - * - * @return mixed The primary key of the row - */ - public static function getPrimaryKeyFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - - return (int) $row[ - $indexType == TableMap::TYPE_NUM - ? 0 + $offset - : self::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType) - ]; - } - - /** - * The class that the tableMap will make instances of. - * - * If $withPrefix is true, the returned path - * uses a dot-path notation which is translated into a path - * relative to a location on the PHP include_path. - * (e.g. path.to.MyClass -> 'path/to/MyClass.php') - * - * @param boolean $withPrefix Whether or not to return the path with the class name - * @return string path.to.ClassName - */ - public static function getOMClass($withPrefix = true) - { - return $withPrefix ? CarouselTableMap::CLASS_DEFAULT : CarouselTableMap::OM_CLASS; - } - - /** - * Populates an object of the default type or an object that inherit from the default. - * - * @param array $row row returned by DataFetcher->fetch(). - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - * @return array (Carousel object, last column rank) - */ - public static function populateObject($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - $key = CarouselTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); - if (null !== ($obj = CarouselTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, $offset, true); // rehydrate - $col = $offset + CarouselTableMap::NUM_HYDRATE_COLUMNS; - } else { - $cls = CarouselTableMap::OM_CLASS; - $obj = new $cls(); - $col = $obj->hydrate($row, $offset, false, $indexType); - CarouselTableMap::addInstanceToPool($obj, $key); - } - - return array($obj, $col); - } - - /** - * The returned array will contain objects of the default type or - * objects that inherit from the default. - * - * @param DataFetcherInterface $dataFetcher - * @return array - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function populateObjects(DataFetcherInterface $dataFetcher) - { - $results = array(); - - // set the class once to avoid overhead in the loop - $cls = static::getOMClass(false); - // populate the object(s) - while ($row = $dataFetcher->fetch()) { - $key = CarouselTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); - if (null !== ($obj = CarouselTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, 0, true); // rehydrate - $results[] = $obj; - } else { - $obj = new $cls(); - $obj->hydrate($row); - $results[] = $obj; - CarouselTableMap::addInstanceToPool($obj, $key); - } // if key exists - } - - return $results; - } - /** - * Add all the columns needed to create a new object. - * - * Note: any columns that were marked with lazyLoad="true" in the - * XML schema will not be added to the select list and only loaded - * on demand. - * - * @param Criteria $criteria object containing the columns to add. - * @param string $alias optional table alias - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function addSelectColumns(Criteria $criteria, $alias = null) - { - if (null === $alias) { - $criteria->addSelectColumn(CarouselTableMap::ID); - $criteria->addSelectColumn(CarouselTableMap::FILE); - $criteria->addSelectColumn(CarouselTableMap::POSITION); - $criteria->addSelectColumn(CarouselTableMap::URL); - $criteria->addSelectColumn(CarouselTableMap::CREATED_AT); - $criteria->addSelectColumn(CarouselTableMap::UPDATED_AT); - } else { - $criteria->addSelectColumn($alias . '.ID'); - $criteria->addSelectColumn($alias . '.FILE'); - $criteria->addSelectColumn($alias . '.POSITION'); - $criteria->addSelectColumn($alias . '.URL'); - $criteria->addSelectColumn($alias . '.CREATED_AT'); - $criteria->addSelectColumn($alias . '.UPDATED_AT'); - } - } - - /** - * Returns the TableMap related to this object. - * This method is not needed for general use but a specific application could have a need. - * @return TableMap - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function getTableMap() - { - return Propel::getServiceContainer()->getDatabaseMap(CarouselTableMap::DATABASE_NAME)->getTable(CarouselTableMap::TABLE_NAME); - } - - /** - * Add a TableMap instance to the database for this tableMap class. - */ - public static function buildTableMap() - { - $dbMap = Propel::getServiceContainer()->getDatabaseMap(CarouselTableMap::DATABASE_NAME); - if (!$dbMap->hasTable(CarouselTableMap::TABLE_NAME)) { - $dbMap->addTableObject(new CarouselTableMap()); - } - } - - /** - * Performs a DELETE on the database, given a Carousel or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or Carousel object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doDelete($values, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - if ($values instanceof Criteria) { - // rename for clarity - $criteria = $values; - } elseif ($values instanceof \Carousel\Model\Carousel) { // it's a model object - // create criteria based on pk values - $criteria = $values->buildPkeyCriteria(); - } else { // it's a primary key, or an array of pks - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - $criteria->add(CarouselTableMap::ID, (array) $values, Criteria::IN); - } - - $query = CarouselQuery::create()->mergeWith($criteria); - - if ($values instanceof Criteria) { CarouselTableMap::clearInstancePool(); - } elseif (!is_object($values)) { // it's a primary key, or an array of pks - foreach ((array) $values as $singleval) { CarouselTableMap::removeInstanceFromPool($singleval); - } - } - - return $query->delete($con); - } - - /** - * Deletes all rows from the carousel table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public static function doDeleteAll(ConnectionInterface $con = null) - { - return CarouselQuery::create()->doDeleteAll($con); - } - - /** - * Performs an INSERT on the database, given a Carousel or Criteria object. - * - * @param mixed $criteria Criteria or Carousel object containing data that is used to create the INSERT statement. - * @param ConnectionInterface $con the ConnectionInterface connection to use - * @return mixed The new primary key. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doInsert($criteria, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - if ($criteria instanceof Criteria) { - $criteria = clone $criteria; // rename for clarity - } else { - $criteria = $criteria->buildCriteria(); // build Criteria from Carousel object - } - - if ($criteria->containsKey(CarouselTableMap::ID) && $criteria->keyContainsValue(CarouselTableMap::ID) ) { - throw new PropelException('Cannot insert a value for auto-increment primary key ('.CarouselTableMap::ID.')'); - } - - - // Set the correct dbName - $query = CarouselQuery::create()->mergeWith($criteria); - - try { - // use transaction because $criteria could contain info - // for more than one table (I guess, conceivably) - $con->beginTransaction(); - $pk = $query->doInsert($con); - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $pk; - } - -} // CarouselTableMap -// This is the static code needed to register the TableMap for this table with the main Propel class. -// -CarouselTableMap::buildTableMap(); diff --git a/local/local/modules/Carousel/Readme.md b/local/local/modules/Carousel/Readme.md deleted file mode 100644 index 6b372438..00000000 --- a/local/local/modules/Carousel/Readme.md +++ /dev/null @@ -1,62 +0,0 @@ -# Carousel - -This module for Thelia add a customizable carousel on your home page. You can upload you own image and overload the default template in your template for using the carousel. - -## Installation - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is Carousel. -* Activate it in your thelia administration panel - -## Usage - -In the configuration panel of this module, you can upload as many images as you want. - -## Hook - -The carousel is installed in the "Home page - main area" (home.body) hook. - -## Loop - -Customize images with the `carousel` loop, which has the same arguments as the `image` loop. You can define a width, a height, and many other parameters - -### Input arguments - -|Argument |Description | -|--- |--- | -|**width** | A width in pixels, for resizing image. If only the width is provided, the image ratio is preserved. Example : width="200" | -|**height** | A height in pixels, for resizing image. If only the height is provided, the image ratio is preserved. example : height="200" | -|**rotation** |The rotation angle in degrees (positive or negative) applied to the image. The background color of the empty areas is the one specified by 'background_color'. example : rotation="90" | -|**background_color** |The color applied to empty image parts during processing. Use $rgb or $rrggbb color format. example : background_color="$cc8000"| -|**quality** |The generated image quality, from 0(!) to 100%. The default value is 75% (you can hange this in the Administration panel). example : quality="70"| -|**resize_mode** | If 'crop', the image will have the exact specified width and height, and will be cropped if required. If 'borders', the image will have the exact specified width and height, and some borders may be added. The border color is the one specified by 'background_color'. If 'none' or missing, the image ratio is preserved, and depending od this ratio, may not have the exact width and height required. resize_mode="crop"| -|**effects** |One or more comma separated effects definitions, that will be applied to the image in the specified order. Please see below a detailed description of available effects. Expected values :
  • gamma:value : change the image Gamma to the specified value. Example: gamma:0.7.
  • grayscale or greyscale : switch image to grayscale.
  • colorize:color : apply a color mask to the image. The color format is $rgb or $rrggbb. Example: colorize:$ff2244.
  • negative : transform the image in its negative equivalent.
  • vflip or vertical_flip : flip the image vertically.
  • hflip or horizontal_flip : flip the image horizontally.
example : effects="greyscale,gamma:0.7,vflip" | - -### Ouput arguments - -|Variable |Description | -|--- |--- | -|$ID |the image ID | -|$IMAGE_URL |The absolute URL to the generated image | -|$ORIGINAL_IMAGE_URL |The absolute URL to the original image | -|$IMAGE_PATH |The absolute path to the generated image file | -|$ORIGINAL_IMAGE_PATH |The absolute path to the original image file | -|$ALT |alt text | -|$TITLE |the image title | -|$CHAPO |the image summary | -|$DESCRIPTION |the image description | -|$POSTSCRIPTUM |the image conclusion | -|$LOCALE |the textual elements locale | -|$POSITION |the image position in the carousel | -|$URL |the related URL | - -### Exemple - -``` -{loop type="carousel" name="carousel.front" width="1200" height="390" resize_mode="borders"} - {$ALT} -{/loop} -``` - -## How to override ? - -If you want your own carousel in your tempalte, create the directory ```modules/Carousel``` then create the template ```carousel.html``` in this directory. Here you can create your own carousel and the replace the default template provided in the module. diff --git a/local/local/modules/Carousel/composer.json b/local/local/modules/Carousel/composer.json deleted file mode 100644 index 5cfd6d37..00000000 --- a/local/local/modules/Carousel/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/carousel-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Carousel" - } -} diff --git a/local/local/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js b/local/local/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index 54b03e5f..00000000 --- a/local/local/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,6 +0,0 @@ -$(function() { - // Set proper image ID in delete from - $('a.image-delete').click(function(ev) { - $('#image_delete_id').val($(this).data('id')); - }); -}); diff --git a/local/local/modules/Carousel/templates/backOffice/default/module_configuration.html b/local/local/modules/Carousel/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 3904630f..00000000 --- a/local/local/modules/Carousel/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,136 +0,0 @@ -
-
-
- {intl l='Edit your carousel.' d='carousel.bo.default'} -
-
- -
-
-
- {form name="carousel.image"} - - - {form_hidden_fields} - - {form_field field='file'} -
- -
- - - - -
-
- {/form_field} - - {/form} -
-
-
- -
-
- {intl l='Carousel images' d='carousel.bo.default'} -
-
- -
-
-
- {ifloop rel="carousel.image"} - {form name="carousel.update"} -
- - {include - file = "includes/inner-form-toolbar.html" - page_url = "{url path='/admin/module/Carousel'}" - close_url = "{url path='/admin/modules'}" - } - - {form_hidden_fields} - - {loop name="carousel.image" type="carousel" width="550" height="200" resize_mode="borders" backend_context="1" lang="$edit_language_id"} - -
-
-
-

- - {$ALT} - -

- - - -
-
- -
-
- {form_field field="position{$ID}"} - - {/form_field} -
-
-
- -
- {* Not yet implemented - {render_form_field field="chapo{$ID} value=$CHAPO"} - *} - {render_form_field field="title{$ID}" value=$TITLE} - {render_form_field field="alt{$ID}" value=$ALT} - {render_form_field field="url{$ID}" value=$URL} - {render_form_field field="description{$ID}" extra_class="wysiwyg" value=$DESCRIPTION} - {* Not yet implemented - {render_form_field field="postscriptum{$ID}" value=$POSTSCRIPTUM} - *} -
-
-
- {/loop} - - {include - file = "includes/inner-form-toolbar.html" - page_url = "{url path='/admin/module/Carousel'}" - close_url = "{url path='/admin/modules'}" - page_bottom = true - } -
- {/form} - {/ifloop} - - {elseloop rel="carousel.image"} -
- {intl d='carousel.bo.default' l="Your carousel contains no image. Please add one using the form above."} -
- {/elseloop} -
-
-
-
- -{capture "delete_dialog"} - -{/capture} - -{include -file = "includes/generic-confirm-dialog.html" - -dialog_id = "delete_carousel_dialog" -dialog_title = {intl l="Delete a carousel image" d="carousel.bo.default"} -dialog_message = {intl l="Do you really want to remove this image from the carousel ?" d="carousel.bo.default"} - -form_action = {url path='/admin/module/carousel/delete'} -form_content = {$smarty.capture.delete_dialog nofilter} -} - - - - diff --git a/local/local/modules/Carousel/templates/frontOffice/default/carousel.html b/local/local/modules/Carousel/templates/frontOffice/default/carousel.html deleted file mode 100644 index 6a714a5e..00000000 --- a/local/local/modules/Carousel/templates/frontOffice/default/carousel.html +++ /dev/null @@ -1,24 +0,0 @@ -{ifloop rel="carousel.front"} - -{/ifloop} \ No newline at end of file diff --git a/local/local/modules/Cheque/Cheque.php b/local/local/modules/Cheque/Cheque.php deleted file mode 100644 index 8d1e94c9..00000000 --- a/local/local/modules/Cheque/Cheque.php +++ /dev/null @@ -1,73 +0,0 @@ -getCurrentOrderTotalAmount() > 0; - } - - public function postActivation(ConnectionInterface $con = null) - { - $database = new Database($con); - - // Insert email message - $database->insertSql(null, array(__DIR__ . "/Config/setup.sql")); - } - - public function destroy(ConnectionInterface $con = null, $deleteModuleData = false) - { - // Delete our message - if (null !== $message = MessageQuery::create()->findOneByName('order_confirmation_cheque')) { - $message->delete($con); - } - - parent::destroy($con, $deleteModuleData); - } - - /** - * if you want, you can manage stock in your module instead of order process. - * Return false if you want to manage yourself the stock - * - * @return bool - */ - public function manageStockOnCreation() - { - return false; - } -} diff --git a/local/local/modules/Cheque/Config/config.xml b/local/local/modules/Cheque/Config/config.xml deleted file mode 100644 index b09cf496..00000000 --- a/local/local/modules/Cheque/Config/config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - -
- - - - - - - - - - - - - - - - - diff --git a/local/local/modules/Cheque/Config/module.xml b/local/local/modules/Cheque/Config/module.xml deleted file mode 100644 index 14f8675a..00000000 --- a/local/local/modules/Cheque/Config/module.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - Cheque\Cheque - - Cheque - - - Cheque - - images - - en_US - fr_FR - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - payment - 2.2.0 - alpha - diff --git a/local/local/modules/Cheque/Config/routing.xml b/local/local/modules/Cheque/Config/routing.xml deleted file mode 100644 index 8c741c05..00000000 --- a/local/local/modules/Cheque/Config/routing.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - Cheque\Controller\ConfigureController::configure - - diff --git a/local/local/modules/Cheque/Config/setup.sql b/local/local/modules/Cheque/Config/setup.sql deleted file mode 100644 index 2f91a0e7..00000000 --- a/local/local/modules/Cheque/Config/setup.sql +++ /dev/null @@ -1,32 +0,0 @@ --- --------------------------------------------------------------------- --- Mail template for cheque --- --------------------------------------------------------------------- - --- First, delete existing entries -SET @var := 0; -SELECT @var := `id` FROM `message` WHERE name="order_confirmation_cheque"; -DELETE FROM `message` WHERE `id`=@var; - --- Then add new entries -SELECT @max := MAX(`id`) FROM `message`; -SET @max := @max+1; - --- insert message -INSERT INTO `message` (`id`, `name`, `secured`) VALUES - (@max, - 'order_confirmation_cheque', - '0' - ); --- and mail templates -INSERT INTO `message_i18n` (`id`, `locale`, `title`, `subject`, `text_message`, `html_message`) VALUES - (@max, - 'en_US', - 'Confirmation of payment by cheque', - 'Payment of order {$order_ref}', 'Dear customer,\r\nThis is a confirmation of the payment by cheque of your order {$order_ref} on our shop.\r\nYour invoice is now available in your customer account at {config key="url_site"}\r\nThank you again for your purchase.\r\nThe {config key="store_name"} team.', '\r\n\r\n\r\n \r\n courriel de confirmation de commande de {config key="url_site"} \r\n \r\n\r\n\r\n
\r\n
\r\n

{config key="store_name"}

\r\n

The payment of your order is confirmed

\r\n

Reference {$order_ref}

\r\n
\r\n

\r\n Your invoice is now available in your customer account on\r\n {config key="store_name"}.\r\n

\r\n

Thank you for your order !

\r\n

The {config key="store_name"} team.

\r\n
\r\n\r\n' - ), - (@max, - 'fr_FR', - 'Confirmation de paiement par chèque', - 'Paiement de la commande : {$order_ref}', - 'Cher client,\r\nCe message confirme le paiement par chèque de votre commande numero {$order_ref} sur notre boutique.\r\nVotre facture est maintenant disponible dans votre compte client à l''adresse {config key="url_site"}\r\nMerci encore pour votre achat !\r\nL''équipe {config key="store_name"}', '\r\n\r\n\r\n \r\n Confirmation du paiement de votre commande sur {config key="url_site"} \r\n \r\n\r\n\r\n
\r\n
\r\n

{config key="store_name"}

\r\n

Confirmation du paiement de votre commande

\r\n

N° {$order_ref}

\r\n
\r\n

\r\n Le suivi de votre commande est disponible dans la rubrique mon compte sur\r\n {config key="url_site"}\r\n

\r\n

Merci pour votre achat !

\r\n

L''équipe {config key="store_name"}

\r\n
\r\n\r\n' - ); diff --git a/local/local/modules/Cheque/Controller/ConfigureController.php b/local/local/modules/Cheque/Controller/ConfigureController.php deleted file mode 100644 index 5aea04ed..00000000 --- a/local/local/modules/Cheque/Controller/ConfigureController.php +++ /dev/null @@ -1,98 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Controller; - -use Cheque\Cheque; -use Cheque\Form\ConfigurationForm; -use Symfony\Component\HttpFoundation\RedirectResponse; -use Thelia\Controller\Admin\BaseAdminController; -use Thelia\Core\Security\AccessManager; -use Thelia\Core\Security\Resource\AdminResources; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Tools\URL; - -/** - * Class SetTransferConfig - * @package WireTransfer\Controller - * @author Thelia - */ -class ConfigureController extends BaseAdminController -{ - public function configure() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, 'Cheque', AccessManager::UPDATE)) { - return $response; - } - - // Initialize the potential exception - $ex = null; - - // Create the Form from the request - $configurationForm = $this->createForm('cheque.instructions.configure'); - - try { - // Check the form against constraints violations - $form = $this->validateForm($configurationForm, "POST"); - - // Get the form field values - $data = $form->getData(); - - Cheque::setConfigValue('instructions', $data['instructions'], $this->getCurrentEditionLocale()); - Cheque::setConfigValue('payable_to', $data['payable_to']); - - // Log configuration modification - $this->adminLogAppend( - "cheque.configuration.message", - AccessManager::UPDATE, - sprintf("Cheque instructions configuration updated") - ); - - // Everything is OK. - return new RedirectResponse(URL::getInstance()->absoluteUrl('/admin/module/Cheque')); - - } catch (FormValidationException $ex) { - // Form cannot be validated. Create the error message using - // the BaseAdminController helper method. - $error_msg = $this->createStandardFormValidationErrorMessage($ex); - } - catch (\Exception $ex) { - // Any other error - $error_msg = $ex->getMessage(); - } - - // At this point, the form has errors, and should be redisplayed. We don not redirect, - // just redisplay the same template. - // Setup the Form error context, to make error information available in the template. - $this->setupFormErrorContext( - $this->getTranslator()->trans("Cheque instructions configuration", [], Cheque::MESSAGE_DOMAIN), - $error_msg, - $configurationForm, - $ex - ); - - // Do not redirect at this point, or the error context will be lost. - // Just redisplay the current template. - return $this->render('module-configure', array('module_code' => 'Cheque')); - } -} \ No newline at end of file diff --git a/local/local/modules/Cheque/Form/ConfigurationForm.php b/local/local/modules/Cheque/Form/ConfigurationForm.php deleted file mode 100644 index 6ab4d5a0..00000000 --- a/local/local/modules/Cheque/Form/ConfigurationForm.php +++ /dev/null @@ -1,90 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Form; - -use Cheque\Cheque; -use Symfony\Component\Validator\Constraints\NotBlank; -use Thelia\Core\Translation\Translator; -use Thelia\Form\BaseForm; - -/** - * Class ConfigurationForm - * @package Cheque\Form - * @author Thelia - */ -class ConfigurationForm extends BaseForm -{ - protected function trans($str, $params = []) - { - return Translator::getInstance()->trans($str, $params, Cheque::MESSAGE_DOMAIN); - } - - protected function buildForm() - { - $this->formBuilder - ->add( - 'payable_to', - 'text', - [ - 'constraints' => [ new NotBlank() ], - 'label' => $this->trans('Cheque is payable to: '), - 'label_attr' => [ - 'for' => 'payable_to', - 'help' => $this->trans('The name to which the cheque shoud be payable to.') - ], - 'attr' => [ - 'rows' => 10, - 'placeholder' => $this->trans('Pay cheque to') - ] - ] - ) - ->add( - 'instructions', - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->trans('Cheque instructions'), - 'label_attr' => [ - 'for' => 'namefield', - 'help' => $this->trans('Please enter here the payment by cheque instructions') - ], - 'attr' => [ - 'rows' => 10, - 'placeholder' => $this->trans('Payment instruction') - ] - ] - ) - ; - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return 'cheque_configuration_instructions'; - } -} \ No newline at end of file diff --git a/local/local/modules/Cheque/Hook/HookManager.php b/local/local/modules/Cheque/Hook/HookManager.php deleted file mode 100644 index c0798886..00000000 --- a/local/local/modules/Cheque/Hook/HookManager.php +++ /dev/null @@ -1,34 +0,0 @@ - - */ -class HookManager extends BaseHook { - - public function onAdditionalPaymentInfo(HookRenderEvent $event) - { - $content = $this->render("order-placed.additional-payment-info.html", [ - 'placed_order_id' => $event->getArgument('placed_order_id') - ]); - - $event->add($content); - } -} \ No newline at end of file diff --git a/local/local/modules/Cheque/I18n/backOffice/default/de_DE.php b/local/local/modules/Cheque/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 6e6d3a79..00000000 --- a/local/local/modules/Cheque/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Scheck-Anleitungen-Konfiguration', -]; diff --git a/local/local/modules/Cheque/I18n/backOffice/default/en_US.php b/local/local/modules/Cheque/I18n/backOffice/default/en_US.php deleted file mode 100644 index 2219a2f7..00000000 --- a/local/local/modules/Cheque/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Cheque instructions configuration', -); diff --git a/local/local/modules/Cheque/I18n/backOffice/default/fr_FR.php b/local/local/modules/Cheque/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 71ae3192..00000000 --- a/local/local/modules/Cheque/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Instructions de paiement par chèque', -]; diff --git a/local/local/modules/Cheque/I18n/backOffice/default/tr_TR.php b/local/local/modules/Cheque/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 9490b898..00000000 --- a/local/local/modules/Cheque/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Çek yönergeleri yapılandırma', -]; diff --git a/local/local/modules/Cheque/I18n/de_DE.php b/local/local/modules/Cheque/I18n/de_DE.php deleted file mode 100644 index ffd4ad36..00000000 --- a/local/local/modules/Cheque/I18n/de_DE.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Scheck-Anweisungen', - 'Cheque instructions configuration' => 'Scheck-Anleitungen-Konfiguration', - 'Cheque is payable to: ' => 'Scheck ist zahlbar an: ', - 'Pay cheque to' => 'Scheck bezahlen an', - 'Payment instruction' => 'Zahlungsanweisungen', - 'Please enter here the payment by cheque instructions' => 'Bitte geben Sie hier die Zahlung durch Scheck Anweisungen ein', - 'The name to which the cheque shoud be payable to.' => 'Der Name, an den der Scheck bezahlbar sein soll.', -]; diff --git a/local/local/modules/Cheque/I18n/en_US.php b/local/local/modules/Cheque/I18n/en_US.php deleted file mode 100644 index 9a0ebf14..00000000 --- a/local/local/modules/Cheque/I18n/en_US.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Cheque instructions', - 'Cheque instructions configuration' => 'Cheque instructions configuration', - 'Cheque is payable to: ' => 'Cheque is payable to: ', - 'Pay cheque to' => 'Pay cheque to', - 'Payment instruction' => 'Payment instruction', - 'Please enter here the payment by cheque instructions' => 'Please enter here the payment by cheque instructions', - 'The name to which the cheque shoud be payable to.' => 'The name to which the cheque shoud be payable to.', -); diff --git a/local/local/modules/Cheque/I18n/fr_FR.php b/local/local/modules/Cheque/I18n/fr_FR.php deleted file mode 100644 index b286ccaf..00000000 --- a/local/local/modules/Cheque/I18n/fr_FR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Instructions de paiement', - 'Cheque instructions configuration' => 'Instructions de paiement par chèque', - 'Cheque is payable to: ' => 'Ordre du chèque', - 'Pay cheque to' => 'Ordre du chèque', - 'Payment instruction' => 'Instructions de paiement', - 'Please enter here the payment by cheque instructions' => 'Indiquez ici les instructions particulières de paiement par chèque', - 'The name to which the cheque shoud be payable to.' => 'Le nom à fare figurer sur le chèque', -]; diff --git a/local/local/modules/Cheque/I18n/frontOffice/default/de_DE.php b/local/local/modules/Cheque/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index b87c46ae..00000000 --- a/local/local/modules/Cheque/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Vergessen Sie nicht, Ihren Scheck zu unterschreiben !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Bitte stellen Sie den Scheck auf %name, und senden Sie es an die folgende Adresse : ', -]; diff --git a/local/local/modules/Cheque/I18n/frontOffice/default/en_US.php b/local/local/modules/Cheque/I18n/frontOffice/default/en_US.php deleted file mode 100644 index ac9f8aaa..00000000 --- a/local/local/modules/Cheque/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Be sure to sign your cheque !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Please make your cheque payable to %name, and send it to the following address :', -); diff --git a/local/local/modules/Cheque/I18n/frontOffice/default/fr_FR.php b/local/local/modules/Cheque/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index b2ac1579..00000000 --- a/local/local/modules/Cheque/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'N\'oubliez par de signer votre chèque !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Merci de libeller votre chèque à l\'ordre de %name, et de l\'expédier à l\'adresse suivante :', -]; diff --git a/local/local/modules/Cheque/I18n/frontOffice/default/tr_TR.php b/local/local/modules/Cheque/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 1337c364..00000000 --- a/local/local/modules/Cheque/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Çekini imzalamak emin olun!', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Lütfen, Çek %name için ödenecek olun ve aşağıdaki adrese gönderin:', -]; diff --git a/local/local/modules/Cheque/I18n/tr_TR.php b/local/local/modules/Cheque/I18n/tr_TR.php deleted file mode 100644 index 80a9c5e3..00000000 --- a/local/local/modules/Cheque/I18n/tr_TR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Çek yönergeleri', - 'Cheque instructions configuration' => 'Çek yönergeleri yapılandırma', - 'Cheque is payable to: ' => 'Çek için ödenir: ', - 'Pay cheque to' => 'Çek için ödeme', - 'Payment instruction' => 'Ödeme talimatı', - 'Please enter here the payment by cheque instructions' => 'Lütfen burada ödeme çek yönergeleri tarafından girin', - 'The name to which the cheque shoud be payable to.' => 'Adı için çek shoud için ödenecek.', -]; diff --git a/local/local/modules/Cheque/Listener/SendPaymentConfirmationEmail.php b/local/local/modules/Cheque/Listener/SendPaymentConfirmationEmail.php deleted file mode 100644 index bad9482a..00000000 --- a/local/local/modules/Cheque/Listener/SendPaymentConfirmationEmail.php +++ /dev/null @@ -1,85 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Listener; - -use Cheque\Cheque; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Thelia\Action\BaseAction; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Mailer\MailerFactory; - -/** - * Class SendEMail - * @package IciRelais\Listener - * @author Thelia - */ -class SendPaymentConfirmationEmail extends BaseAction implements EventSubscriberInterface -{ - /** - * @var MailerFactory - */ - protected $mailer; - - public function __construct(MailerFactory $mailer) - { - $this->mailer = $mailer; - } - - /** - * @param OrderEvent $event - * - * Check if we're the payment module, and send the payment confirmation email to the customer if it's the case. - */ - public function sendConfirmationEmail(OrderEvent $event) - { - if ($event->getOrder()->getPaymentModuleId() === Cheque::getModuleId()) { - - if ($event->getOrder()->isPaid()) { - - $order = $event->getOrder(); - - $this->mailer->sendEmailToCustomer( - 'order_confirmation_cheque', - $order->getCustomer(), - [ - 'order_id' => $order->getId(), - 'order_ref' => $order->getRef() - ] - ); - } - } - } - - /** - * @inheritdoc - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("sendConfirmationEmail", 128) - ); - } - -} diff --git a/local/local/modules/Cheque/composer.json b/local/local/modules/Cheque/composer.json deleted file mode 100644 index 8dca2321..00000000 --- a/local/local/modules/Cheque/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/cheque-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Cheque" - } -} diff --git a/local/local/modules/Cheque/images/cheque.png b/local/local/modules/Cheque/images/cheque.png deleted file mode 100644 index 0aad099e..00000000 Binary files a/local/local/modules/Cheque/images/cheque.png and /dev/null differ diff --git a/local/local/modules/Cheque/templates/backOffice/default/module_configuration.html b/local/local/modules/Cheque/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 5cdeb14b..00000000 --- a/local/local/modules/Cheque/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,55 +0,0 @@ -{if isset($smarty.get.errmes) && !empty($smarty.get.errmes)} -
- {$smarty.get.errmes} -
-{/if} - -
-
- -
-
- {intl d='cheque.bo.default' l="Cheque instructions configuration"} -
-
- -
-
-
- - {form name="cheque.instructions.configure"} - - - - {include - file = "includes/inner-form-toolbar.html" - hide_submit_buttons = false - - page_url = {url path="/admin/module/Cheque"} - close_url = {url path="/admin/modules"} - } - - {form_hidden_fields} - - {if $form_error} -
-
-
{$form_error_message}
-
-
- {/if} - - {loop type="module-config" name="get-payable-to" module="Cheque" variable="payable_to"} - {render_form_field field="payable_to" value=$VALUE} - {/loop} - - {loop type="module-config" name="get-instruction" module="Cheque" variable="instructions" locale=$edit_language_locale} - {render_form_field field="instructions" extra_class="wysiwyg" value=$VALUE} - {/loop} - - {/form} -
-
-
-
-
\ No newline at end of file diff --git a/local/local/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html b/local/local/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html deleted file mode 100644 index ddc89478..00000000 --- a/local/local/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html +++ /dev/null @@ -1,21 +0,0 @@ -{loop type="module-config" name="cheque-instructions" module="cheque" variable="payable_to"} -

{intl d='cheque.fo.default' l="Please make your cheque payable to %name, and send it to the following address :" name={$VALUE}}

-{/loop} - -
- {config key="store_name"}
- {config key="store_address1"}
- {if ! empty({config key="store_address2"})}{config key="store_address2"}
{/if} - {if ! empty({config key="store_address3"})}{config key="store_address3"}
{/if} - {config key="store_zipcode"}, {config key="store_city"}
- {if {config key="store_country"}} - {loop type="country" name="store_country" id={config key="store_country"}} - {$TITLE}
- {/loop} - {/if} -
-

{intl d='cheque.fo.default' l="Be sure to sign your cheque !"}

- -{loop type="module-config" name="cheque-instructions" module="cheque" variable="instructions" locale={lang attr='locale'}} -

{$VALUE nofilter}

-{/loop} diff --git a/local/local/modules/Colissimo/Colissimo.php b/local/local/modules/Colissimo/Colissimo.php deleted file mode 100644 index c1023908..00000000 --- a/local/local/modules/Colissimo/Colissimo.php +++ /dev/null @@ -1,177 +0,0 @@ -insertSql(null, array(__DIR__ . '/Config/thelia.sql')); - } - - public function isValidDelivery(Country $country) - { - if (0 == self::getConfigValue(ColissimoConfigValue::ENABLED, 1)) { - return false; - } - - if (null !== $area = $this->getAreaForCountry($country)) { - $areaId = $area->getId(); - - $prices = self::getPrices(); - - /* Check if Colissimo delivers the area */ - if (isset($prices[$areaId]) && isset($prices[$areaId]["slices"])) { - // Yes ! Check if the cart weight is below slice limit - $areaPrices = $prices[$areaId]["slices"]; - ksort($areaPrices); - - /* Check cart weight is below the maximum weight */ - end($areaPrices); - $maxWeight = key($areaPrices); - - $cartWeight = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher())->getWeight(); - - if ($cartWeight <= $maxWeight) { - return true; - } - } - } - - return false; - } - - /** - * @param $areaId - * @param $weight - * - * @return mixed - * @throws \Thelia\Exception\OrderException - */ - public static function getPostageAmount($areaId, $weight) - { - $freeshipping = Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING); - $postage = 0; - if (!$freeshipping) { - $prices = self::getPrices(); - - /* check if Colissimo delivers the asked area */ - if (!isset($prices[$areaId]) || !isset($prices[$areaId]["slices"])) { - throw new DeliveryException( - Translator::getInstance()->trans( - "Colissimo delivery unavailable for the delivery country", - [], - self::DOMAIN_NAME - ) - ); - } - - $areaPrices = $prices[$areaId]["slices"]; - ksort($areaPrices); - - /* Check cart weight is below the maximum weight */ - end($areaPrices); - $maxWeight = key($areaPrices); - if ($weight > $maxWeight) { - throw new DeliveryException( - Translator::getInstance()->trans( - "Colissimo delivery unavailable for this cart weight (%weight kg)", - array("%weight" => $weight), - self::DOMAIN_NAME - ) - ); - } - - $postage = current($areaPrices); - - while (prev($areaPrices)) { - if ($weight > key($areaPrices)) { - break; - } - - $postage = current($areaPrices); - } - } - return $postage; - - } - - /** - * - * calculate and return delivery price - * - * @param Country $country - * @return mixed - * @throws \Thelia\Exception\OrderException - */ - public function getPostage(Country $country) - { - $cartWeight = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher())->getWeight(); - - $postage = self::getPostageAmount( - $this->getAreaForCountry($country)->getId(), - $cartWeight - ); - - return $postage; - } - - public function update($currentVersion, $newVersion, ConnectionInterface $con = null) - { - $uploadDir = __DIR__ . '/Config/prices.json'; - - $database = new Database($con); - - $tableExists = $database->execute("SHOW TABLES LIKE 'colissimo_freeshipping'")->rowCount(); - - if (Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING, null) == null && $tableExists) { - $result = $database->execute('SELECT active FROM colissimo_freeshipping WHERE id=1')->fetch()["active"]; - Colissimo::setConfigValue(ColissimoConfigValue::FREE_SHIPPING, $result); - $database->execute("DROP TABLE `colissimo_freeshipping`"); - } - - if (is_readable($uploadDir) && Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null) == null) { - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, file_get_contents($uploadDir)); - } - } -} diff --git a/local/local/modules/Colissimo/Config/config.xml b/local/local/modules/Colissimo/Config/config.xml deleted file mode 100644 index fb02632e..00000000 --- a/local/local/modules/Colissimo/Config/config.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/local/modules/Colissimo/Config/module.xml b/local/local/modules/Colissimo/Config/module.xml deleted file mode 100644 index b6d71aab..00000000 --- a/local/local/modules/Colissimo/Config/module.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - Colissimo\Colissimo - - Colissimo delivery - - - Livraison par Colissimo - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - delivery - 2.2.0 - alpha - diff --git a/local/local/modules/Colissimo/Config/prices.json b/local/local/modules/Colissimo/Config/prices.json deleted file mode 100644 index 53eacc3b..00000000 --- a/local/local/modules/Colissimo/Config/prices.json +++ /dev/null @@ -1,64 +0,0 @@ -{"1": { - "_info": "area 1 : France", - "slices": { - "0.25": 5.23, - "0.5": 6.13, - "0.75": 6.89, - "1": 7.51, - "2": 8.50, - "5": 10.93, - "10": 15.68, - "30": 23.28 - } -}, "2": { - "_info": "area 2 : A Zone - Union Europ\u00e9enne et Suisse", - "slices": { - "0.5": 11.54, - "1": 14.11, - "2": 15.68, - "5": 20.14, - "10": 33.25, - "20": 55.10, - "30": 55.10 - } -}, "3": { - "_info": "area 3 : B Zone - Pays de l\u2019Europe de l\u2019Est (hors Union Europ\u00e9enne et Russie), Norv\u00e8ge, Maghreb", - "slices": { - "0.5": 15.39, - "1": 18.38, - "2": 20.00, - "5": 25.65, - "10": 42.75, - "20": 66.50 - } -}, "4": { - "_info": "area 4 : C Zone - Autres destinations", - "slices": { - "0.5": 22.52, - "1": 24.99, - "2": 34.30, - "5": 50.35, - "10": 95.00, - "20": 152.00 - } -}, "5": { - "_info": "area 5 : France OM1", - "slices": { - "0.5": 8.69, - "1": 13.16, - "2": 17.96, - "5": 26.60, - "10": 42.75, - "30": 95.95 - } -}, "6": { - "_info": "area 6 : France OM2", - "slices": { - "0.5": 10.40, - "1": 15.72, - "2": 27.74, - "5": 46.08, - "10": 90.25, - "30": 237.50 - } -}} diff --git a/local/local/modules/Colissimo/Config/routing.xml b/local/local/modules/Colissimo/Config/routing.xml deleted file mode 100644 index 4edcf64d..00000000 --- a/local/local/modules/Colissimo/Config/routing.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - Colissimo\Controller\EditPrices::editprices - - - - Colissimo\Controller\FreeShipping::set - - - - Colissimo\Controller\Export::exportAction - - - - Colissimo\Controller\Configuration::editConfiguration - - diff --git a/local/local/modules/Colissimo/Config/thelia.sql b/local/local/modules/Colissimo/Config/thelia.sql deleted file mode 100644 index d44ef9fa..00000000 --- a/local/local/modules/Colissimo/Config/thelia.sql +++ /dev/null @@ -1,32 +0,0 @@ -# This is a fix for InnoDB in MySQL >= 4.1.x -# It "suspends judgement" for fkey relationships until are tables are set. -SET FOREIGN_KEY_CHECKS = 0; - --- --------------------------------------------------------------------- --- Mail templates for colissimo --- --------------------------------------------------------------------- - --- First, delete existing entries -SET @var := 0; -SELECT @var := `id` FROM `message` WHERE name="mail_colissimo"; -DELETE FROM `message` WHERE `id`=@var; --- Try if ON DELETE constraint isn't set -DELETE FROM `message_i18n` WHERE `id`=@var; - --- Then add new entries -SELECT @max := MAX(`id`) FROM `message`; -SET @max := @max+1; --- insert message -INSERT INTO `message` (`id`, `name`, `secured`) VALUES -(@max, -'mail_colissimo', -'0' -); - --- and template fr_FR -INSERT INTO `message_i18n` (`id`, `locale`, `title`, `subject`, `text_message`, `html_message`) VALUES -(@max, 'en_US', 'Colissimo shipping message', 'Your order {$order_ref} has been shipped', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\nDear {$FIRSTNAME} {$LASTNAME},\r\n{/loop}\r\nThank you for your order on our online store {config key="store_name"}.\r\nYour order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\r\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.\r\nYou can use this tracking number to get your parcel in your local La Poste office. If don''t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.\r\nFeel free to contact us for any forther information\r\nBest Regards.', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n

Dear {$FIRSTNAME} {$LASTNAME},

\r\n{/loop}\r\n

Thank you for your order on our online store {config key="store_name"}.

\r\n

Your order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\r\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.

\r\n

You can use this tracking number to get your parcel in your local La Poste office. If don''t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.

\r\n

Feel free to contact us for any forther information

\r\n

Best Regards.

'), -(@max, 'fr_FR', 'Message d''expédition de colissimo', 'Suivi colissimo commande : {$order_ref}', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n{$LASTNAME} {$FIRSTNAME},\r\n{/loop}\r\nNous vous remercions de votre commande sur notre site {config key="store_name"}\r\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\r\nSon numéro de suivi est le suivant : {$package}\r\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\r\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\r\nATTENTION ! Si vous ne trouvez pas l''avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n''hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\r\nNous restons à votre disposition pour toute information complémentaire.\r\nCordialement', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n{$LASTNAME} {$FIRSTNAME},\r\n{/loop}\r\nNous vous remercions de votre commande sur notre site {config key="store_name"}\r\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\r\nSon numéro de suivi est le suivant : {$package}\r\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\r\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\r\nATTENTION ! Si vous ne trouvez pas l''avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n''hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\r\nNous restons à votre disposition pour toute information complémentaire.\r\nCordialement'); - -# This restores the fkey checks, after having unset them earlier -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/local/local/modules/Colissimo/Controller/Configuration.php b/local/local/modules/Colissimo/Controller/Configuration.php deleted file mode 100644 index 52f99df8..00000000 --- a/local/local/modules/Colissimo/Controller/Configuration.php +++ /dev/null @@ -1,77 +0,0 @@ - - */ -class Configuration extends BaseAdminController -{ - public function editConfiguration() - { - if (null !== $response = $this->checkAuth( - AdminResources::MODULE, - [Colissimo::DOMAIN_NAME], - AccessManager::UPDATE - )) { - return $response; - } - - $form = $this->createForm('colissimo.configuration'); - $error_message = null; - - try { - $validateForm = $this->validateForm($form); - $data = $validateForm->getData(); - - Colissimo::setConfigValue( - ColissimoConfigValue::ENABLED, - is_bool($data["enabled"]) ? (int) ($data["enabled"]) : $data["enabled"] - ); - - return $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'configuration', - $error_message, - $form - ); - $response = $this->render("module-configure", ['module_code' => 'Colissimo']); - } - return $response; - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/local/modules/Colissimo/Controller/EditPrices.php b/local/local/modules/Colissimo/Controller/EditPrices.php deleted file mode 100644 index a4ed5083..00000000 --- a/local/local/modules/Colissimo/Controller/EditPrices.php +++ /dev/null @@ -1,84 +0,0 @@ - - */ -class EditPrices extends BaseAdminController -{ - public function editprices() - { - // Get data & treat - $post = $this->getRequest(); - $operation = $post->get('operation'); - $area = $post->get('area'); - $weight = $post->get('weight'); - $price = $post->get('price'); - - if (preg_match("#^add|delete$#", $operation) && - preg_match("#^\d+$#", $area) && - preg_match("#^\d+\.?\d*$#", $weight) - ) { - // check if area exists in db - $exists = AreaQuery::create() - ->findPK($area); - if ($exists !== null) { - - if (null !== $data = Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null)) { - $json_data = json_decode( - $data, - true - ); - } - if ((float) $weight > 0 && $operation == "add" - && preg_match("#\d+\.?\d*#", $price)) { - $json_data[$area]['slices'][$weight] = $price; - } elseif ($operation == "delete") { - if (isset($json_data[$area]['slices'][$weight])) { - unset($json_data[$area]['slices'][$weight]); - } - } else { - throw new \Exception("Weight must be superior to 0"); - } - ksort($json_data[$area]['slices']); - - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, json_encode($json_data)); - - } else { - throw new \Exception("Area not found"); - } - } else { - throw new \ErrorException("Arguments are missing or invalid"); - } - - return $this->redirectToConfigurationPage(); - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/local/modules/Colissimo/Controller/Export.php b/local/local/modules/Colissimo/Controller/Export.php deleted file mode 100644 index ca82a68e..00000000 --- a/local/local/modules/Colissimo/Controller/Export.php +++ /dev/null @@ -1,166 +0,0 @@ - - */ -class Export extends BaseAdminController -{ - const DEFAULT_PHONE = "0100000000"; - const DEFAULT_CELLPHONE = "0600000000"; - - public function exportAction() - { - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('Colissimo'), AccessManager::UPDATE)) { - return $response; - } - - $form = new FormExport($this->getRequest()); - - try { - $exportForm = $this->validateForm($form); - - // Get new status - $status_id = $exportForm->get('status_id')->getData(); - $status = OrderStatusQuery::create() - ->filterByCode($status_id) - ->findOne(); - - // Get Colissimo orders - $orders = ColissimoQuery::getOrders()->find(); - - $export = ""; - $store_name = ConfigQuery::getStoreName(); - - /** @var $order \Thelia\Model\Order */ - foreach ($orders as $order) { - - $value = $exportForm->get('order_'.$order->getId())->getData(); - - if ($value) { - - // Get order information - $customer = $order->getCustomer(); - $locale = $order->getLang()->getLocale(); - $address = $order->getOrderAddressRelatedByDeliveryOrderAddressId(); - $country = CountryQuery::create()->findPk($address->getCountryId()); - $country->setLocale($locale); - $customerTitle = CustomerTitleQuery::create()->findPk($address->getCustomerTitleId()); - $customerTitle->setLocale($locale); - $weight = $exportForm->get('order_weight_'.$order->getId())->getData(); - - if ($weight == 0) { - /** @var \Thelia\Model\OrderProduct $product */ - foreach ($order->getOrderProducts() as $product) { - $weight += (double)$product->getWeight(); - } - } - - /** - * Get user's phone & cellphone - * First get invoice address phone, - * If empty, try to get default address' phone. - * If still empty, set default value - */ - $phone = $address->getPhone(); - if (empty($phone)) { - $phone = $customer->getDefaultAddress()->getPhone(); - - if (empty($phone)) { - $phone = self::DEFAULT_PHONE; - } - } - - // Cellphone - $cellphone = $customer->getDefaultAddress()->getCellphone(); - - if (empty($cellphone)) { - $cellphone = $customer->getDefaultAddress()->getCellphone(); - - if (empty($cellphone)) { - $cellphone = self::DEFAULT_CELLPHONE; - } - } - - - $export .= - "\"".$order->getRef() - ."\";\"".$address->getLastname() - ."\";\"".$address->getFirstname() - ."\";\"".$address->getAddress1() - ."\";\"".$address->getAddress2() - ."\";\"".$address->getAddress3() - ."\";\"".$address->getZipcode() - ."\";\"".$address->getCity() - ."\";\"".$country->getIsoalpha2() - ."\";\"".$phone - ."\";\"".$cellphone - ."\";\"".$weight - ."\";\"".$customer->getEmail() - ."\";\"\";\"".$store_name - ."\";\"DOM\";\r\n"; - - if ($status) { - $event = new OrderEvent($order); - $event->setStatus($status->getId()); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event); - } - } - } - - return Response::create( - utf8_decode($export), - 200, - array( - "Content-Encoding"=>"ISO-8889-1", - "Content-Type"=>"application/csv-tab-delimited-table", - "Content-disposition"=>"filename=export.csv" - ) - ); - - } catch (FormValidationException $e) { - $this->setupFormErrorContext( - Translator::getInstance()->trans("colissimo expeditor export", [], Colissimo::DOMAIN_NAME), - $e->getMessage(), - $form, - $e - ); - - return $this->render( - "module-configure", - array( - "module_code" => "Colissimo", - ) - ); - } - } -} diff --git a/local/local/modules/Colissimo/Controller/FreeShipping.php b/local/local/modules/Colissimo/Controller/FreeShipping.php deleted file mode 100644 index 10d46e6f..00000000 --- a/local/local/modules/Colissimo/Controller/FreeShipping.php +++ /dev/null @@ -1,62 +0,0 @@ - - */ -class FreeShipping extends BaseAdminController -{ - public function set() - { - $response = $this->checkAuth(AdminResources::MODULE, [Colissimo::DOMAIN_NAME], AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - $form = $this->createForm('colissimo.freeshipping.form'); - - - try { - $validateForm = $this->validateForm($form); - $data = $validateForm->getData(); - - Colissimo::setConfigValue(ColissimoConfigValue::FREE_SHIPPING, (int) ($data["freeshipping"])); - return $this->redirectToConfigurationPage(); - - } catch (\Exception $e) { - $response = JsonResponse::create(array("error"=>$e->getMessage()), 500); - } - - return $response; - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/local/modules/Colissimo/EventListener/AreaDeletedListener.php b/local/local/modules/Colissimo/EventListener/AreaDeletedListener.php deleted file mode 100644 index c1eb3e41..00000000 --- a/local/local/modules/Colissimo/EventListener/AreaDeletedListener.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ -class AreaDeletedListener implements EventSubscriberInterface -{ - /** - * @param AreaDeleteEvent $event - */ - public function updateConfig(AreaDeleteEvent $event) - { - if (null !== $data = Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null)) { - $areaId = $event->getAreaId(); - $json_data = json_decode($data, true); - unset($json_data[$areaId]); - - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, json_encode($json_data, true)); - } - } - - /** - * @return array - */ - public static function getSubscribedEvents() - { - return [ - TheliaEvents::AREA_DELETE => [ - 'updateConfig', 128 - ] - ]; - } -} diff --git a/local/local/modules/Colissimo/Form/Configuration.php b/local/local/modules/Colissimo/Form/Configuration.php deleted file mode 100644 index bc9c58b3..00000000 --- a/local/local/modules/Colissimo/Form/Configuration.php +++ /dev/null @@ -1,59 +0,0 @@ - - */ -class Configuration extends BaseForm -{ - - protected function buildForm() - { - $this->formBuilder - ->add( - "enabled", - "checkbox", - array( - "label" => "Enabled", - "label_attr" => [ - "for" => "enabled", - "help" => Translator::getInstance()->trans( - 'Check if you want to activate Colissimo', - [], - Colissimo::DOMAIN_NAME - ) - ], - "required" => false, - "constraints" => array( - ), - "value" => Colissimo::getConfigValue(ColissimoConfigValue::ENABLED, 1), - ) - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimo_enable"; - } -} diff --git a/local/local/modules/Colissimo/Form/Export.php b/local/local/modules/Colissimo/Form/Export.php deleted file mode 100644 index 47c8fddf..00000000 --- a/local/local/modules/Colissimo/Form/Export.php +++ /dev/null @@ -1,122 +0,0 @@ - - */ -class Export extends BaseForm -{ - - /** - * - * in this function you add all the fields you need for your Form. - * Form this you have to call add method on $this->formBuilder attribute : - * - * $this->formBuilder->add("name", "text") - * ->add("email", "email", array( - * "attr" => array( - * "class" => "field" - * ), - * "label" => "email", - * "constraints" => array( - * new \Symfony\Component\Validator\Constraints\NotBlank() - * ) - * ) - * ) - * ->add('age', 'integer'); - * - * @return null - */ - protected function buildForm() - { - $orders = ColissimoQuery::getOrders() - ->find(); - - $this->formBuilder - ->add( - 'status_id', - 'text', - [ - 'constraints' => [ - new NotBlank(), - new Callback( - array("methods" => array(array($this, "verifyValue"))) - ) - ], - 'label' => Translator::getInstance()->trans( - 'Modify status export after export', - [], - Colissimo::DOMAIN_NAME - ), - 'label_attr' => [ - 'for' => 'status_id' - ] - ] - ); - - /** @var \Thelia\Model\Order $order */ - foreach ($orders as $order) { - $this->formBuilder - ->add( - "order_".$order->getId(), - "checkbox", - array( - 'label'=>$order->getRef(), - 'label_attr'=>array( - 'for'=>'export_'.$order->getId() - ) - ) - ) - ->add( - "order_nb_pkg_".$order->getId(), - 'number' - ) - ->add( - "order_weight_".$order->getId(), - 'number' - ); - } - } - - public function verifyValue($value, ExecutionContextInterface $context) - { - if (!preg_match("#^nochange|processing|sent$#", $value)) { - $context->addViolation( - Translator::getInstance()->trans( - 'select a valid status', - [], - Colissimo::DOMAIN_NAME - ) - ); - } - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimo_export"; - } -} diff --git a/local/local/modules/Colissimo/Form/FreeShipping.php b/local/local/modules/Colissimo/Form/FreeShipping.php deleted file mode 100644 index baea56e0..00000000 --- a/local/local/modules/Colissimo/Form/FreeShipping.php +++ /dev/null @@ -1,62 +0,0 @@ -formBuilder attribute : - * - * $this->formBuilder->add("name", "text") - * ->add("email", "email", array( - * "attr" => array( - * "class" => "field" - * ), - * "label" => "email", - * "constraints" => array( - * new \Symfony\Component\Validator\Constraints\NotBlank() - * ) - * ) - * ) - * ->add('age', 'integer'); - * - * @return null - */ - protected function buildForm() - { - $this->formBuilder - ->add( - "freeshipping", - "checkbox", - array( - "label" => Translator::getInstance()->trans("Activate free shipping: ", [], Colissimo::DOMAIN_NAME), - "value" => Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING, false), - ) - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimofreeshipping"; - } -} diff --git a/local/local/modules/Colissimo/Hook/HookManager.php b/local/local/modules/Colissimo/Hook/HookManager.php deleted file mode 100644 index 7c8b15bb..00000000 --- a/local/local/modules/Colissimo/Hook/HookManager.php +++ /dev/null @@ -1,31 +0,0 @@ - - */ -class HookManager extends BaseHook -{ - public function onModuleConfiguration(HookRenderEvent $event) - { - $module_id = self::getModule()->getModuleId(); - - $event->add($this->render("module_configuration.html", ['module_id' => $module_id])); - } -} diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/de_DE.php b/local/local/modules/Colissimo/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 10ed342f..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,25 +0,0 @@ - '*Wenn Sie diese Option auswählen, sind die exportierten Bestellungen auf dieser Seite nicht mehr verfügbar', - 'Actions' => 'Aktionen', - 'An error occured' => 'Ein Fehler ist aufgetreten', - 'Area : ' => 'Bereich : ', - 'Cancel' => 'Abbrechen', - 'Change orders status after export' => 'Status der Bestellung nach dem Export ändern', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo Modul ermöglicht, Ihre Produkte mit La Poste weltweit zu versenden.', - 'Create' => 'Erstellen', - 'Date' => 'Datum', - 'Delete' => 'Löschen', - 'Do not change' => 'Nicht ändern', - 'Edit' => 'Ändern', - 'Export' => 'Export', - 'Please change the access rights' => 'Bitte ändern Sie die Zugriffsrechte', - 'Price (€)' => 'Preis (€)', - 'Processing' => 'Bearbeitung', - 'REF' => 'REF', - 'Sent' => 'Gesendet', - 'There is currently not orders to export' => 'Es gibt derzeit keine Bestellungen, die exportiert werden können', - 'Total taxed amount' => 'Gesamter besteuerter Betrag', - 'Weight up to ... (kg)' => 'Gewicht bis zu ... (kg)', -]; diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/en_US.php b/local/local/modules/Colissimo/I18n/backOffice/default/en_US.php deleted file mode 100644 index 0d48057a..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,36 +0,0 @@ - '*If you choose this option, the exported orders would not be available on this page anymore', - 'Actions' => 'Actions', - 'An error occured' => 'An error occured', - 'Area : ' => 'Area : ', - 'Cancel' => 'Cancel', - 'Change orders status after export' => 'Change orders status after export', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo Module allows to send your products all around the world with La Poste.', - 'Create' => 'Create', - 'Create a new price slice' => 'Create a new price slice', - 'Create a price slice' => 'Create a price slice', - 'Date' => 'Date', - 'Delete' => 'Delete', - 'Delete a price slice' => 'Delete a price slice', - 'Delete this price slice' => 'Delete this price slice', - 'Do not change' => 'Do not change', - 'Do you really want to delete this slice ?' => 'Do you really want to delete this slice ?', - 'Edit' => 'Edit', - 'Edit a price slice' => 'Edit a price slice', - 'Edit this price slice' => 'Edit this price slice', - 'Export' => 'Export', - 'Export expeditor inet file' => 'Export expeditor inet file', - 'Please change the access rights' => 'Please change the access rights', - 'Price (€)' => 'Price (€)', - 'Price slices' => 'Price slices', - 'Processing' => 'Processing', - 'REF' => 'REF', - 'Sent' => 'Sent', - 'There is currently not orders to export' => 'There is currently no orders to export', - 'Total taxed amount' => 'Total taxed amount', - 'Weight up to ... (kg)' => 'Weight up to ... (kg)', - 'Number of packages' => 'Number of packages', - 'Packages weight' => 'Packages weight' -); diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/fr_FR.php b/local/local/modules/Colissimo/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index d7237509..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,37 +0,0 @@ - '* Si vous choisissez cette option, les commandes exportées ne seront plus affichée sur cette page.', - 'Actions' => 'Actions', - 'An error occured' => 'Une erreur est survenue', - 'Area : ' => 'Zone de livraison : ', - 'Cancel' => 'Annuler', - 'Change orders status after export' => 'Modification du statut des commande après l\'export', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo vous permet d’expédier vos colis dans le monde entier avec La Poste', - 'Create' => 'Créer', - 'Create a new price slice' => 'Créer une nouvelle tranche de prix', - 'Create a price slice' => 'Créer une tranche de prix', - 'Customer' => 'Client', - 'Date' => 'Date', - 'Delete' => 'Supprimer', - 'Delete a price slice' => 'Supprimer une tranche de prix', - 'Delete this price slice' => 'Supprimer cette tranche de prix', - 'Do not change' => 'Ne pas modifier', - 'Do you really want to delete this slice ?' => 'Confirmez-vous la suppression de cette tranche de prix', - 'Edit' => 'Modifier', - 'Edit a price slice' => 'Modifier une tranche de prix', - 'Edit this price slice' => 'Modifier cette tranche de prix', - 'Export' => 'Export', - 'Export expeditor inet file' => 'Exporter le fichier Expeditor INET', - 'Number of packages' => 'Nombre de colis', - 'Packages weight' => 'Poids des colis', - 'Please change the access rights' => 'Merci de modifier les droits d\'accès', - 'Price (€)' => 'Prix (€)', - 'Price slices' => 'Prix et poids', - 'Processing' => 'Traitement', - 'REF' => 'REF', - 'Sent' => 'Envoyée', - 'There is currently not orders to export' => 'Il n\'y a pas de commande à exporter pour le moment', - 'Total taxed amount' => 'Total TTC', - 'Weight up to ... (kg)' => 'Jusqu\'au poids (Kg)', -]; diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/it_IT.php b/local/local/modules/Colissimo/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 58e711dc..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Azioni', - 'Cancel' => 'Annulla', - 'Create' => 'Creare', - 'Date' => 'Data', - 'Delete' => 'Cancellare', - 'Edit' => 'Modifica', - 'Export' => 'Esporta', - 'Number of packages' => 'Numero di pacchetti', - 'Packages weight' => 'Peso pacchi', -]; diff --git a/local/local/modules/Colissimo/I18n/backOffice/default/tr_TR.php b/local/local/modules/Colissimo/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index a777927b..00000000 --- a/local/local/modules/Colissimo/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,34 +0,0 @@ - '* Bu seçeneği seçerseniz, ihracat siparişleri artık bu sayfadaki müsait olmaz', - 'Actions' => 'Eylemler', - 'An error occured' => 'Bir hata meydana geldi', - 'Area : ' => 'Alanı: ', - 'Cancel' => 'Vazgeç', - 'Change orders status after export' => 'İhracat sonra sipariş durumunu değiştir', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo modülü sağlar ürünlerinizi göndermek için La Poste ile dünyanın her yerinden.', - 'Create' => 'Oluştur', - 'Create a new price slice' => 'Yeni fiyat dilimi oluşturmak', - 'Create a price slice' => 'Bir fiyat dilim oluşturma', - 'Date' => 'Tarih', - 'Delete' => 'sil', - 'Delete a price slice' => 'Bir fiyat dilim silmek', - 'Delete this price slice' => 'Bu fiyat dilim silmek', - 'Do not change' => 'Değiştirme', - 'Do you really want to delete this slice ?' => 'Gerçekten bu dosyayı silmek istiyor musunuz ?', - 'Edit' => 'Düzenle', - 'Edit a price slice' => 'Bir fiyat dilim Düzenle', - 'Edit this price slice' => 'Bu fiyat dilim Düzenle', - 'Export' => 'Dışa aktarma', - 'Export expeditor inet file' => 'Expeditor inet dosyası dışa aktarma', - 'Please change the access rights' => 'Lütfen erişim haklarını Değiştir', - 'Price (€)' => 'Fiyat (TL)', - 'Price slices' => 'Fiyat dilimleri', - 'Processing' => 'İşlem devam ediyor', - 'REF' => 'ÜRÜN KODU', - 'Sent' => 'Gönder', - 'There is currently not orders to export' => 'Şu anda hiçbir emir vermek için', - 'Total taxed amount' => 'Toplam Kdvtutarı', - 'Weight up to ... (kg)' => 'Fazla kilo... (kg)', -]; diff --git a/local/local/modules/Colissimo/I18n/de_DE.php b/local/local/modules/Colissimo/I18n/de_DE.php deleted file mode 100644 index 5198cfbd..00000000 --- a/local/local/modules/Colissimo/I18n/de_DE.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Kostenlose Lieferung aktivieren: ', - 'Can\'t read Config directory' => 'Config-Verzeichnis kann nicht gelesen werden', - 'Can\'t read file' => 'Datei kann nicht gelesen werden', - 'Can\'t write Config directory' => 'Config-Verzeichnis kann nicht beschrieben werden', - 'Can\'t write file' => 'Datei kann nicht geschrieben werden', - 'Colissimo delivery unavailable for the delivery country' => 'Eine Lieferung mit Colissimo ist für das Land nicht verfügbar', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Eine Lieferung mit Colissimo ist für Warenkörbe mit diesem Gewicht (%weight kg) nicht verfügbar', - 'Modify status export after export' => 'Status der Bestellung nach dem Export ändern', - 'colissimo expeditor export' => 'Colissimo expeditor export', - 'select a valid status' => 'Wählen Sie einen gültigen Bestellungsstatus aus', -]; diff --git a/local/local/modules/Colissimo/I18n/en_US.php b/local/local/modules/Colissimo/I18n/en_US.php deleted file mode 100644 index c060ae29..00000000 --- a/local/local/modules/Colissimo/I18n/en_US.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Activate free shipping: ', - 'Can\'t read Config directory' => 'Can\'t read Config directory', - 'Can\'t read file' => 'Can\'t read file', - 'Can\'t write Config directory' => 'Can\'t write Config directory', - 'Can\'t write file' => 'Can\'t write file', - 'Colissimo delivery unavailable for the delivery country' => 'Colissimo delivery unavailable for the delivery country', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Colissimo delivery unavailable for this cart weight (%weight kg)', - 'Modify status export after export' => 'Change orders status after export', - 'colissimo expeditor export' => 'Colissimo Expeditor export', - 'select a valid status' => 'Select a valid order status', -); diff --git a/local/local/modules/Colissimo/I18n/fr_FR.php b/local/local/modules/Colissimo/I18n/fr_FR.php deleted file mode 100644 index 92634b2c..00000000 --- a/local/local/modules/Colissimo/I18n/fr_FR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Activer la livraison offerte: ', - 'Can\'t read Config directory' => 'Le dossier Config ne peut être lu', - 'Can\'t read file' => 'Le fichier suivant ne peut être lu', - 'Can\'t write Config directory' => 'Le dossier Config ne peut être écrit', - 'Can\'t write file' => 'Le fichier suivant ne peut être écrit', - 'Colissimo delivery unavailable for the delivery country' => 'La livraison par Colissimo n\'est pas disponible dans ce pays', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'La livraison par Colissimo n\'est pas disponible pour un panier de %weight Kg', - 'Modify status export after export' => 'Modification du statut des commandes après l\'export', - 'colissimo expeditor export' => 'Export pour le logiciel Expeditor', - 'select a valid status' => 'Choisissez un statut de commande valide.', -]; diff --git a/local/local/modules/Colissimo/I18n/tr_TR.php b/local/local/modules/Colissimo/I18n/tr_TR.php deleted file mode 100644 index 4d4ef3c5..00000000 --- a/local/local/modules/Colissimo/I18n/tr_TR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ücretsiz nakliye etkinleştirmek için: ', - 'Can\'t read Config directory' => 'Yapılandırma dizini okunamıyor', - 'Can\'t read file' => 'Dosyayı okuyamıyor', - 'Can\'t write Config directory' => 'Dosyayı okuyamıyor', - 'Can\'t write file' => 'Dosyaya yazılamıyor', - 'Colissimo delivery unavailable for the delivery country' => 'Bu Teslimat Bu ülke için kullanılamaz Colissimo teslim', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Colissimo teslimat için bu sepeti ağırlık (%weight kg) kullanılamaz', - 'Modify status export after export' => 'İhracat sonra sipariş durumunu değiştir', - 'colissimo expeditor export' => 'Colissimo Expeditor verme', - 'select a valid status' => 'Geçerli sipariş durumunu seçin', -]; diff --git a/local/local/modules/Colissimo/Listener/SendMail.php b/local/local/modules/Colissimo/Listener/SendMail.php deleted file mode 100644 index e9db80ae..00000000 --- a/local/local/modules/Colissimo/Listener/SendMail.php +++ /dev/null @@ -1,104 +0,0 @@ - - */ -class SendMail implements EventSubscriberInterface -{ - - protected $parser; - - protected $mailer; - - public function __construct(ParserInterface $parser, MailerFactory $mailer) - { - $this->parser = $parser; - $this->mailer = $mailer; - } - - public function updateStatus(OrderEvent $event) - { - $order = $event->getOrder(); - $colissimo = new Colissimo(); - - if ($order->isSent() && $order->getDeliveryModuleId() == $colissimo->getModuleModel()->getId()) { - $contact_email = ConfigQuery::getStoreEmail(); - - if ($contact_email) { - $order = $event->getOrder(); - $customer = $order->getCustomer(); - - $this->mailer->sendEmailToCustomer( - 'mail_colissimo', - $customer, - [ - 'customer_id' => $customer->getId(), - 'order_ref' => $order->getRef(), - 'order_date' => $order->getCreatedAt(), - 'update_date' => $order->getUpdatedAt(), - 'package' => $order->getDeliveryRef() - ] - ); - - Tlog::getInstance()->debug("Colissimo shipping message sent to customer ".$customer->getEmail()); - } else { - $customer = $order->getCustomer(); - Tlog::getInstance()->debug("Colissimo shipping message no contact email customer_id", $customer->getId()); - } - } - } - - /** - * Returns an array of event names this subscriber wants to listen to. - * - * The array keys are event names and the value can be: - * - * * The method name to call (priority defaults to 0) - * * An array composed of the method name to call and the priority - * * An array of arrays composed of the method names to call and respective - * priorities, or 0 if unset - * - * For instance: - * - * * array('eventName' => 'methodName') - * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) - * - * @return array The event names to listen to - * - * @api - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("updateStatus", 128) - ); - } -} diff --git a/local/local/modules/Colissimo/Loop/CheckRightsLoop.php b/local/local/modules/Colissimo/Loop/CheckRightsLoop.php deleted file mode 100644 index d655f1ad..00000000 --- a/local/local/modules/Colissimo/Loop/CheckRightsLoop.php +++ /dev/null @@ -1,100 +0,0 @@ - - */ -class CheckRightsLoop extends BaseLoop implements ArraySearchLoopInterface -{ - protected function getArgDefinitions() - { - return new ArgumentCollection(); - } - - public function buildArray() - { - $ret = array(); - $dir = __DIR__."/../Config/"; - if (!is_readable($dir)) { - - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't read Config directory", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"" - ); - } - if (!is_writable($dir)) { - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't write Config directory", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"" - ); - - } - if ($handle = opendir($dir)) { - while (false !== ($file = readdir($handle))) { - if (strlen($file) > 5 && substr($file, -5) === ".json") { - if (!is_readable($dir.$file)) { - - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't read file", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"Colissimo/Config/".$file - ); - } - if (!is_writable($dir.$file)) { - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't write file", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"Colissimo/Config/".$file - ); - - } - } - } - } - return $ret; - } - public function parseResults(LoopResult $loopResult) - { - foreach ($loopResult->getResultDataCollection() as $arr) { - $loopResultRow = new LoopResultRow(); - $loopResultRow->set("ERRMES", $arr["ERRMES"]) - ->set("ERRFILE", $arr["ERRFILE"]); - $loopResult->addRow($loopResultRow); - } - return $loopResult; - } -} diff --git a/local/local/modules/Colissimo/Loop/NotSendLoop.php b/local/local/modules/Colissimo/Loop/NotSendLoop.php deleted file mode 100644 index b504924e..00000000 --- a/local/local/modules/Colissimo/Loop/NotSendLoop.php +++ /dev/null @@ -1,74 +0,0 @@ - - */ -class NotSendLoop extends Order -{ - /** - * - * define all args used in your loop - * - * - * example : - * - * public function getArgDefinitions() - * { - * return new ArgumentCollection( - * Argument::createIntListTypeArgument('id'), - * new Argument( - * 'ref', - * new TypeCollection( - * new Type\AlphaNumStringListType() - * ) - * ), - * Argument::createIntListTypeArgument('category'), - * Argument::createBooleanTypeArgument('new'), - * Argument::createBooleanTypeArgument('promo'), - * Argument::createFloatTypeArgument('min_price'), - * Argument::createFloatTypeArgument('max_price'), - * Argument::createIntTypeArgument('min_stock'), - * Argument::createFloatTypeArgument('min_weight'), - * Argument::createFloatTypeArgument('max_weight'), - * Argument::createBooleanTypeArgument('current'), - * - * ); - * } - * - * @return \Thelia\Core\Template\Loop\Argument\ArgumentCollection - */ - public function getArgDefinitions() - { - return new ArgumentCollection(Argument::createBooleanTypeArgument('with_prev_next_info', false)); - } - - /** - * this method returns a Propel ModelCriteria - * - * @return \Propel\Runtime\ActiveQuery\ModelCriteria - */ - public function buildModelCriteria() - { - return ColissimoQuery::getOrders(); - } -} diff --git a/local/local/modules/Colissimo/Loop/Price.php b/local/local/modules/Colissimo/Loop/Price.php deleted file mode 100644 index 014f5eef..00000000 --- a/local/local/modules/Colissimo/Loop/Price.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -class Price extends BaseLoop implements ArraySearchLoopInterface -{ - /* set countable to false since we need to preserve keys */ - protected $countable = false; - - /** - * @return ArgumentCollection - */ - protected function getArgDefinitions() - { - return new ArgumentCollection( - Argument::createIntTypeArgument('area', null, true) - ); - } - - public function buildArray() - { - $area = $this->getArea(); - $prices = Colissimo::getPrices(); - - if (!isset($prices[$area]) || !isset($prices[$area]["slices"])) { - return array(); - } - - $areaPrices = $prices[$area]["slices"]; - ksort($areaPrices); - - return $areaPrices; - } - - public function parseResults(LoopResult $loopResult) - { - foreach ($loopResult->getResultDataCollection() as $maxWeight => $price) { - $loopResultRow = new LoopResultRow(); - $loopResultRow->set("MAX_WEIGHT", $maxWeight) - ->set("PRICE", $price); - - $loopResult->addRow($loopResultRow); - } - return $loopResult; - } -} diff --git a/local/local/modules/Colissimo/Model/ColissimoQuery.php b/local/local/modules/Colissimo/Model/ColissimoQuery.php deleted file mode 100644 index 2fb634c7..00000000 --- a/local/local/modules/Colissimo/Model/ColissimoQuery.php +++ /dev/null @@ -1,66 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Colissimo\Model; - -use Colissimo\Colissimo; -use Propel\Runtime\ActiveQuery\Criteria; -use Thelia\Model\OrderQuery; -use Thelia\Model\OrderStatus; -use Thelia\Model\OrderStatusQuery; - -/** - * Class ColissimoQuery - * @package Colissimo\Model - * @author Manuel Raynaud - */ -class ColissimoQuery -{ - /** - * @return OrderQuery - */ - public static function getOrders() - { - $status = OrderStatusQuery::create() - ->filterByCode( - array( - OrderStatus::CODE_PAID, - OrderStatus::CODE_PROCESSING, - ), - Criteria::IN - ) - ->find() - ->toArray("code"); - - $query = OrderQuery::create() - ->filterByDeliveryModuleId((new Colissimo())->getModuleModel()->getId()) - ->filterByStatusId( - array( - $status[OrderStatus::CODE_PAID]['Id'], - $status[OrderStatus::CODE_PROCESSING]['Id']), - Criteria::IN - ); - - return $query; - } -} diff --git a/local/local/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php b/local/local/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php deleted file mode 100644 index c481a36a..00000000 --- a/local/local/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ -class ColissimoConfigValue -{ - const FREE_SHIPPING = "free_shipping"; - const PRICES = "prices"; - const ENABLED = "enabled"; -} diff --git a/local/local/modules/Colissimo/Model/Config/ColissimoConfigValue.php b/local/local/modules/Colissimo/Model/Config/ColissimoConfigValue.php deleted file mode 100644 index d0cb0be1..00000000 --- a/local/local/modules/Colissimo/Model/Config/ColissimoConfigValue.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -class ColissimoConfigValue extends BaseColissimoConfigValue -{ -} diff --git a/local/local/modules/Colissimo/THELIA_INET.FMT b/local/local/modules/Colissimo/THELIA_INET.FMT deleted file mode 100644 index 97266648..00000000 --- a/local/local/modules/Colissimo/THELIA_INET.FMT +++ /dev/null @@ -1,23 +0,0 @@ -[GENERAL] -DELIMITE=O -SEPARATEUR=59 -DELIMITEUR=34 -FINDELIGNE=CRLF -Unité poids=KG -[CHAMPS] -ReferenceExpedition=1 -NomDestinataire=2 -Prenom=3 -Adresse1=4 -Adresse2=5 -Adresse3=6 -CodePostal=7 -Commune=8 -CodePays=9 -Telephone=10 -Portable=11 -Poids=12 -Mail=13 -CodePointRetrait=14 -CodeProduit=15 -NomCommercialChargeur=16 diff --git a/local/local/modules/Colissimo/composer.json b/local/local/modules/Colissimo/composer.json deleted file mode 100644 index d84be8fd..00000000 --- a/local/local/modules/Colissimo/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/colissimo-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Colissimo" - } -} diff --git a/local/local/modules/Colissimo/documentation/TarifsAvril2013.pdf b/local/local/modules/Colissimo/documentation/TarifsAvril2013.pdf deleted file mode 100644 index 886a9983..00000000 Binary files a/local/local/modules/Colissimo/documentation/TarifsAvril2013.pdf and /dev/null differ diff --git a/local/local/modules/Colissimo/documentation/readme.txt b/local/local/modules/Colissimo/documentation/readme.txt deleted file mode 100644 index b673e196..00000000 --- a/local/local/modules/Colissimo/documentation/readme.txt +++ /dev/null @@ -1,3 +0,0 @@ -Colissimo prices based on April 2013 pdf. -TarifsAvril2013.pdf is available in this module documentation folder. -You may update prices in Config/prices.json file. \ No newline at end of file diff --git a/local/local/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html b/local/local/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html deleted file mode 100644 index a51dac94..00000000 --- a/local/local/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html +++ /dev/null @@ -1,36 +0,0 @@ -{javascripts file="assets/js/bootstrap-switch/bootstrap-switch.js"} - -{/javascripts} - - \ No newline at end of file diff --git a/local/local/modules/Colissimo/templates/backOffice/default/module_configuration.html b/local/local/modules/Colissimo/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 3c495353..00000000 --- a/local/local/modules/Colissimo/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,316 +0,0 @@ -
- - {loop name="checkrights.colissimo" type="colissimo.check.rights"} -
-

{$ERRMES} {$ERRFILE} | {intl d='colissimo.bo.default' l="Please change the access rights"}.

-
- {/loop} -
- -{elseloop rel="checkrights.colissimo"} - -
-

{intl d='colissimo.bo.default' l="Colissimo Module allows to send your products all around the world with La Poste."}

-
- - - -
-
-
- {form name="colissimo.configuration"} - - {form_hidden_fields form=$form} - - {form_field form=$form field="enabled"} -
- - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
- {/form_field} - - - - {/form} -
-
-
- -
-
-
- - - -
- - -
- {form name="colissimo.export.form"} - {if $form_error}
{$form_error_message}
{/if} -
- {form_hidden_fields} -
- -
- {intl d='colissimo.bo.default' l="Change orders status after export"} -
- -
- - {form_field field="status_id"} - - - - - - - - - - - - - {/form_field} -
-   - - -
-   - - -
-   - - -
- - {intl d='colissimo.ai' l="*If you choose this option, the exported orders would not be available on this page anymore"} -
-
- - - - - - - - - - - - - - - {loop name="colissimo.notsend.loop" type="colissimo.notsend.loop"} - - - - - - - - - - {/loop} - {elseloop rel="colissimo.notsend.loop"} - - - - {/elseloop} - -
- {intl d='colissimo.ai' l="REF"} - - {intl d='colissimo.ai' l="Customer"} - - {intl d='colissimo.ai' l="Date"} - - {intl d='colissimo.ai' l="Total taxed amount"} - - {intl d='colissimo.ai' l="Number of packages"} - - {intl d='colissimo.ai' l="Packages weight"} - - {intl d='colissimo.ai' l="Export"} -
- {$REF} - - {loop type='customer' name='colissimo.customer' id=$CUSTOMER current='false'} - {$LASTNAME} {$FIRSTNAME} - {/loop} - - {$CREATE_DATE|date_format} - - {$TOTAL_TAXED_AMOUNT} {loop name="list.socolissimo.getcurrency" type="currency" id=$CURRENCY}{$SYMBOL}{/loop} - - {form_field form=$form field="order_nb_pkg_"|cat:$ID} - - {/form_field} - - {form_field form=$form field="order_weight_"|cat:$ID} - - {/form_field} - - {form_field field="order_"|cat:$ID} - - {/form_field} -
-
-
{intl d='colissimo.ai' l="There is currently not orders to export"}
-
- - {ifloop rel="colissimo.notsend.loop"} - - {/ifloop} -
- {/form} -
- -
- - {assign var="isColissimoFreeShipping" value=0} - {form name="colissimo.freeshipping.form"} -
-
- {form_hidden_fields} - - {form_field field="freeshipping"} - - -
- -
- {/form_field} -
- {/form} - -
-
-
-
-
-{/elseloop} diff --git a/local/local/modules/FreeOrder/Config/config.xml b/local/local/modules/FreeOrder/Config/config.xml deleted file mode 100644 index 42d3733f..00000000 --- a/local/local/modules/FreeOrder/Config/config.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/local/local/modules/FreeOrder/Config/module.xml b/local/local/modules/FreeOrder/Config/module.xml deleted file mode 100644 index 362cb923..00000000 --- a/local/local/modules/FreeOrder/Config/module.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - FreeOrder\FreeOrder - - There's nothing to pay for this order - This is a pseudo-payment module for free orders. - - - Vous n'avez rien à payer pour cette commande - Un pseudo-module de paiement pour les commandes de montant nul - - - en_US - fr_FR - - 2.3.4 - - Franck Allimant - CQFDev - franck@cqfdev.fr - - payment - 2.2.0 - alpha - diff --git a/local/local/modules/FreeOrder/FreeOrder.php b/local/local/modules/FreeOrder/FreeOrder.php deleted file mode 100644 index b5d1df02..00000000 --- a/local/local/modules/FreeOrder/FreeOrder.php +++ /dev/null @@ -1,40 +0,0 @@ -getCurrentOrderTotalAmount() == 0; - } - - public function pay(Order $order) - { - $event = new OrderEvent($order); - $event->setStatus(OrderStatusQuery::getPaidStatus()->getId()); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event); - } - - public function manageStockOnCreation() - { - return false; - } -} diff --git a/local/local/modules/FreeOrder/LICENSE.txt b/local/local/modules/FreeOrder/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/FreeOrder/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/FreeOrder/Readme.md b/local/local/modules/FreeOrder/Readme.md deleted file mode 100644 index 63333460..00000000 --- a/local/local/modules/FreeOrder/Readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Free Order - -This module is used to terminate the order process when the order amount is 0,00. In this case, none of the traditional -payment modules applies. - -## Installation - -This module is bundled with Thelia standard distribution. - -### Manually - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is FreeOrder. -* Activate it in your thelia administration panel - -### Composer - -Add it in your main thelia composer.json file - -``` -composer require thelia/free-order-module:~1.0 -``` - -## Usage - -The module is displayed as needed in the payment modules list of the order-invoice page. \ No newline at end of file diff --git a/local/local/modules/FreeOrder/composer.json b/local/local/modules/FreeOrder/composer.json deleted file mode 100644 index f32437ec..00000000 --- a/local/local/modules/FreeOrder/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/free-order-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "FreeOrder" - } -} \ No newline at end of file diff --git a/local/local/modules/Front/Config/config.xml b/local/local/modules/Front/Config/config.xml deleted file mode 100644 index dc19adf1..00000000 --- a/local/local/modules/Front/Config/config.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - Front/Config/front.xml - - %kernel.cache_dir% - %kernel.debug% - - - - - - diff --git a/local/local/modules/Front/Config/front.xml b/local/local/modules/Front/Config/front.xml deleted file mode 100644 index bec4bdda..00000000 --- a/local/local/modules/Front/Config/front.xml +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - Thelia\Controller\Front\DefaultController::noAction - includes/mini-cart - - - - Thelia\Controller\Front\DefaultController::noAction - includes/addedToCart - - - - - Front\Controller\CustomerController::viewRegisterAction - - - - Front\Controller\CustomerController::createAction - register - - - - - Front\Controller\CustomerController::viewLoginAction - - - - Front\Controller\CustomerController::loginAction - login - - - - - Front\Controller\CustomerController::newPasswordAction - password - - - - Front\Controller\CustomerController::newPasswordSentAction - password - - - - - Front\Controller\CustomerController::logoutAction - - - - - Front\Controller\CustomerController::confirmCustomerAction - - - - - - Thelia\Controller\Front\DefaultController::noAction - account - - - - Front\Controller\CustomerController::viewAction - account-update - - - - Front\Controller\CustomerController::updateAction - account-update - - - - - Front\Controller\CustomerController::updatePasswordAction - account-password - - - - Thelia\Controller\Front\DefaultController::noAction - account-password - - - - Front\Controller\OrderController::viewAction - \d+ - - - - Front\Controller\OrderController::generateDeliveryPdf - \d+ - - - - Front\Controller\OrderController::generateInvoicePdf - \d+ - - - - Front\Controller\OrderController::downloadVirtualProduct - \d+ - - - - - - Thelia\Controller\Front\DefaultController::noAction - address - - - - Front\Controller\AddressController::createAction - address - - - - Front\Controller\AddressController::updateViewAction - address-update - - - - Front\Controller\AddressController::processUpdateAction - address-update - - - - Front\Controller\AddressController::deleteAction - account - - - - Front\Controller\AddressController::generateModalAction - modal-address - \d+ - - - - Front:Address:makeAddressDefault - \d+ - - - - - - - Thelia\Controller\Front\DefaultController::noAction - cart - - - - Front\Controller\CartController::addItem - - - - Front\Controller\CartController::deleteItem - cart - - - - Front\Controller\CartController::changeItem - cart - - - - Front\Controller\CartController::changeCountry - cart - - - - - - Front\Controller\OrderController::deliver - order-delivery - - - - Front\Controller\OrderController::deliverView - order-delivery - - - - Front\Controller\OrderController::getDeliveryModuleListAjaxAction - - - - Front\Controller\OrderController::invoice - order-invoice - - - - Thelia\Controller\Front\DefaultController::noAction - order-invoice - - - - Front\Controller\CouponController::consumeAction - order-invoice - - - - Front\Controller\CouponController::clearAllCouponsAction - order-invoice - - - - Front\Controller\OrderController::pay - - - - Front\Controller\OrderController::orderPlaced - order-placed - - - - Front\Controller\OrderController::orderFailed - order-failed - - - - - - Front\Controller\ContactController::sendAction - contact - - - - Thelia\Controller\Front\DefaultController::noAction - contact-success - - - - - - Front\Controller\NewsletterController::subscribeAction - newsletter - - - - Front\Controller\NewsletterController::unsubscribeAction - newsletter-unsubscribe - - - - - - - Front\Controller\SitemapController::generateAction - - - - - - Front\Controller\FeedController::generateAction - catalog - - - - - - - - Thelia\Controller\Front\DefaultController::emptyRoute - - - - - Thelia\Controller\Front\DefaultController::noAction - index - ^(?!admin|api)[^/]+ - - diff --git a/local/local/modules/Front/Config/module.xml b/local/local/modules/Front/Config/module.xml deleted file mode 100644 index 8b61bb66..00000000 --- a/local/local/modules/Front/Config/module.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Front\Front - - Front integration - - - - Front office module - - - - en_US - fr_FR - - 2.3.0 - - - Thelia team - info@thelia.net - - - classic - 2.2.0 - alpha - 1 - diff --git a/local/local/modules/Front/Controller/AddressController.php b/local/local/modules/Front/Controller/AddressController.php deleted file mode 100644 index 5ef57311..00000000 --- a/local/local/modules/Front/Controller/AddressController.php +++ /dev/null @@ -1,273 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\Form\Form; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Address\AddressCreateOrUpdateEvent; -use Thelia\Core\Event\Address\AddressEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\Customer; - -/** - * Class AddressController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class AddressController extends BaseFrontController -{ - - /** - * Controller for generate modal containing update form - * Check if request is a XmlHttpRequest and address owner is the current customer - * - * @param $address_id - */ - public function generateModalAction($address_id) - { - - $this->checkAuth(); - $this->checkXmlHttpRequest(); - - } - - /** - * Create controller. - * Check if customer is logged in - * - * Dispatch TheliaEvents::ADDRESS_CREATE event - */ - public function createAction() - { - $this->checkAuth(); - - $addressCreate = $this->createForm(FrontForm::ADDRESS_CREATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($addressCreate, "post"); - $event = $this->createAddressEvent($form); - $event->setCustomer($customer); - - $this->dispatch(TheliaEvents::ADDRESS_CREATE, $event); - - return $this->generateSuccessRedirect($addressCreate); - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans("Please check your input: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans("Sorry, an error occured: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } - - Tlog::getInstance()->error(sprintf("Error during address creation process : %s", $message)); - - $addressCreate->setErrorMessage($message); - - $this->getParserContext() - ->addForm($addressCreate) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($addressCreate->hasErrorUrl()) { - return $this->generateErrorRedirect($addressCreate); - } - } - - protected function createAddressEvent(Form $form) - { - return new AddressCreateOrUpdateEvent( - $form->get("label")->getData(), - $form->get("title")->getData(), - $form->get("firstname")->getData(), - $form->get("lastname")->getData(), - $form->get("address1")->getData(), - $form->get("address2")->getData(), - $form->get("address3")->getData(), - $form->get("zipcode")->getData(), - $form->get("city")->getData(), - $form->get("country")->getData(), - $form->get("cellphone")->getData(), - $form->get("phone")->getData(), - $form->get("company")->getData(), - $form->get("is_default")->getData(), - $form->get("state")->getData() - ); - } - - public function updateViewAction($address_id) - { - $this->checkAuth(); - - $customer = $this->getSecurityContext()->getCustomerUser(); - $address = AddressQuery::create()->findPk($address_id); - - if (!$address || $customer->getId() != $address->getCustomerId()) { - return $this->generateRedirectFromRoute('default'); - } - - $this->getParserContext()->set("address_id", $address_id); - } - - public function processUpdateAction($address_id) - { - $this->checkAuth(); - - $addressUpdate = $this->createForm(FrontForm::ADDRESS_UPDATE); - - try { - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($addressUpdate); - - $address = AddressQuery::create()->findPk($address_id); - - if (null === $address) { - return $this->generateRedirectFromRoute('default'); - } - - if ($address->getCustomer()->getId() != $customer->getId()) { - return $this->generateRedirectFromRoute('default'); - } - - $event = $this->createAddressEvent($form); - $event->setAddress($address); - - $this->dispatch(TheliaEvents::ADDRESS_UPDATE, $event); - - return $this->generateSuccessRedirect($addressUpdate); - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans("Please check your input: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans("Sorry, an error occured: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } - - $this->getParserContext()->set("address_id", $address_id); - - Tlog::getInstance()->error(sprintf("Error during address creation process : %s", $message)); - - $addressUpdate->setErrorMessage($message); - - $this->getParserContext() - ->addForm($addressUpdate) - ->setGeneralError($message) - ; - - if ($addressUpdate->hasErrorUrl()) { - return $this->generateErrorRedirect($addressUpdate); - } - } - - public function deleteAction($address_id) - { - $this->checkAuth(); - $error_message = false; - - $customer = $this->getSecurityContext()->getCustomerUser(); - $address = AddressQuery::create()->findPk($address_id); - - if (!$address || $customer->getId() != $address->getCustomerId()) { - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return $this->jsonResponse( - json_encode( - array( - "success" => false, - "message" => $this->getTranslator()->trans( - "Error during address deletion process", - [], - Front::MESSAGE_DOMAIN - ) - ) - ) - ); - } else { - return $this->generateRedirectFromRoute('default'); - } - } - - try { - $this->dispatch(TheliaEvents::ADDRESS_DELETE, new AddressEvent($address)); - } catch (\Exception $e) { - $error_message = $e->getMessage(); - } - - Tlog::getInstance()->error(sprintf('Error during address deletion : %s', $error_message)); - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - if ($error_message) { - $response = $this->jsonResponse(json_encode(array( - "success" => false, - "message" => $error_message - ))); - } else { - $response = $this->jsonResponse( - json_encode([ - "success" => true, - "message" => "" - ]) - ); - } - - return $response; - - } else { - return $this->generateRedirectFromRoute('default', array('view'=>'account')); - } - } - - public function makeAddressDefaultAction($addressId) - { - $this->checkAuth(); - - $address = AddressQuery::create() - ->filterByCustomerId($this->getSecurityContext()->getCustomerUser()->getId()) - ->findPk($addressId) - ; - - if (null === $address) { - $this->pageNotFound(); - } - - try { - $event = new AddressEvent($address); - $this->dispatch(TheliaEvents::ADDRESS_DEFAULT, $event); - } catch (\Exception $e) { - $this->getParserContext() - ->setGeneralError($e->getMessage()) - ; - - return $this->render("account"); - } - - return $this->generateRedirectFromRoute('default', array('view'=>'account')); - } -} diff --git a/local/local/modules/Front/Controller/CartController.php b/local/local/modules/Front/Controller/CartController.php deleted file mode 100644 index 8cb0efd9..00000000 --- a/local/local/modules/Front/Controller/CartController.php +++ /dev/null @@ -1,237 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\Exception\PropelException; -use Symfony\Component\HttpFoundation\Cookie; -use Symfony\Component\HttpFoundation\Request; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Cart\CartEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\CartAdd; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\ConfigQuery; -use Thelia\Model\OrderPostage; -use Thelia\Module\Exception\DeliveryException; -use Thelia\Tools\URL; - -class CartController extends BaseFrontController -{ - public function addItem() - { - $request = $this->getRequest(); - - $cartAdd = $this->getAddCartForm($request); - $message = null; - - try { - $form = $this->validateForm($cartAdd); - - $cartEvent = $this->getCartEvent(); - - $cartEvent->bindForm($form); - - $this->getDispatcher()->dispatch(TheliaEvents::CART_ADDITEM, $cartEvent); - - $this->afterModifyCart(); - - - if ($this->getRequest()->isXmlHttpRequest()) { - $this->changeViewForAjax(); - } elseif (null !== $response = $this->generateSuccessRedirect($cartAdd)) { - return $response; - } - - } catch (PropelException $e) { - Tlog::getInstance()->error(sprintf("Failed to add item to cart with message : %s", $e->getMessage())); - $message = $this->getTranslator()->trans( - "Failed to add this article to your cart, please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (FormValidationException $e) { - $message = $e->getMessage(); - } - - if ($message) { - $cartAdd->setErrorMessage($message); - $this->getParserContext()->addForm($cartAdd); - } - } - - public function changeItem() - { - $cartEvent = $this->getCartEvent(); - $cartEvent->setCartItemId($this->getRequest()->get("cart_item")); - $cartEvent->setQuantity($this->getRequest()->get("quantity")); - - try { - $this->getTokenProvider()->checkToken( - $this->getRequest()->query->get('_token') - ); - - $this->dispatch(TheliaEvents::CART_UPDATEITEM, $cartEvent); - - $this->afterModifyCart(); - - if ($this->getRequest()->isXmlHttpRequest()) { - $this->changeViewForAjax(); - } - } catch (\Exception $e) { - Tlog::getInstance()->error(sprintf("Failed to change cart item quantity: %s", $e->getMessage())); - - $this->getParserContext()->setGeneralError($e->getMessage()); - } - } - - public function deleteItem() - { - $cartEvent = $this->getCartEvent(); - $cartEvent->setCartItemId($this->getRequest()->get("cart_item")); - - try { - $this->getTokenProvider()->checkToken( - $this->getRequest()->query->get('_token') - ); - - $this->getDispatcher()->dispatch(TheliaEvents::CART_DELETEITEM, $cartEvent); - - $this->afterModifyCart(); - } catch (\Exception $e) { - Tlog::getInstance()->error(sprintf("error during deleting cartItem with message : %s", $e->getMessage())); - $this->getParserContext()->setGeneralError($e->getMessage()); - } - - $this->changeViewForAjax(); - - if (null != $successUrl = $this->getRequest()->query->get('success_url')) { - $response = $this->generateRedirect( - URL::getInstance()->absoluteUrl($successUrl) - ); - - return $response; - } - } - - protected function changeViewForAjax() - { - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - $request = $this->getRequest(); - - $view = $request->get('ajax-view', "includes/mini-cart"); - - $request->attributes->set('_view', $view); - } - } - - public function changeCountry() - { - $redirectUrl = URL::getInstance()->absoluteUrl("/cart"); - $deliveryId = $this->getRequest()->get("country"); - $cookieName = ConfigQuery::read('front_cart_country_cookie_name', 'fcccn'); - $cookieExpires = ConfigQuery::read('front_cart_country_cookie_expires', 2592000); - $cookieExpires = intval($cookieExpires) ?: 2592000; - - $cookie = new Cookie($cookieName, $deliveryId, time() + $cookieExpires, '/'); - - $response = $this->generateRedirect($redirectUrl); - $response->headers->setCookie($cookie); - - return $response; - } - - /** - * @return \Thelia\Core\Event\Cart\CartEvent - */ - protected function getCartEvent() - { - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - return new CartEvent($cart); - } - - /** - * Find the good way to construct the cart form - * - * @param Request $request - * @return CartAdd - */ - private function getAddCartForm(Request $request) - { - if ($request->isMethod("post")) { - $cartAdd = $this->createForm(FrontForm::CART_ADD); - } else { - $cartAdd = $this->createForm( - FrontForm::CART_ADD, - "form", - array(), - array( - 'csrf_protection' => false, - ), - $this->container - ); - } - - return $cartAdd; - } - - protected function afterModifyCart() - { - /* recalculate postage amount */ - $order = $this->getSession()->getOrder(); - if (null !== $order) { - $deliveryModule = $order->getModuleRelatedByDeliveryModuleId(); - $deliveryAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - - if (null !== $deliveryModule && null !== $deliveryAddress) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $orderEvent = new OrderEvent($order); - - try { - $postage = OrderPostage::loadFromPostage( - $moduleInstance->getPostage($deliveryAddress->getCountry()) - ); - - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - } catch (DeliveryException $ex) { - // The postage has been chosen, but changes in the cart causes an exception. - // Reset the postage data in the order - $orderEvent->setDeliveryModule(0); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - } - } - } - } -} diff --git a/local/local/modules/Front/Controller/ContactController.php b/local/local/modules/Front/Controller/ContactController.php deleted file mode 100644 index e476a015..00000000 --- a/local/local/modules/Front/Controller/ContactController.php +++ /dev/null @@ -1,84 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\ConfigQuery; - -/** - * Class ContactController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class ContactController extends BaseFrontController -{ - /** - * send contact message - */ - public function sendAction() - { - $contactForm = $this->createForm(FrontForm::CONTACT); - - try { - $form = $this->validateForm($contactForm); - - $this->getMailer()->sendSimpleEmailMessage( - [ ConfigQuery::getStoreEmail() => $form->get('name')->getData() ], - [ ConfigQuery::getStoreEmail() => ConfigQuery::getStoreName() ], - $form->get('subject')->getData(), - '', - $form->get('message')->getData(), - [], - [], - [ $form->get('email')->getData() => $form->get('name')->getData() ] - ); - - if ($contactForm->hasSuccessUrl()) { - return $this->generateSuccessRedirect($contactForm); - } - - return $this->generateRedirectFromRoute('contact.success'); - - } catch (FormValidationException $e) { - $error_message = $e->getMessage(); - } - - Tlog::getInstance()->error(sprintf('Error during sending contact mail : %s', $error_message)); - - $contactForm->setErrorMessage($error_message); - - $this->getParserContext() - ->addForm($contactForm) - ->setGeneralError($error_message) - ; - - // Redirect to error URL if defined - if ($contactForm->hasErrorUrl()) { - return $this->generateErrorRedirect($contactForm); - } - } -} diff --git a/local/local/modules/Front/Controller/CouponController.php b/local/local/modules/Front/Controller/CouponController.php deleted file mode 100644 index c21288f9..00000000 --- a/local/local/modules/Front/Controller/CouponController.php +++ /dev/null @@ -1,159 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\Exception\PropelException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Coupon\CouponConsumeEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Exception\UnmatchableConditionException; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\OrderPostage; -use Thelia\Module\Exception\DeliveryException; - -/** - * Class CouponController - * @package Thelia\Controller\Front - * @author Guillaume MOREL - */ -class CouponController extends BaseFrontController -{ - /** - * Clear all coupons. - */ - public function clearAllCouponsAction() - { - // Dispatch Event to the Action - $this->getDispatcher()->dispatch(TheliaEvents::COUPON_CLEAR_ALL); - } - - /** - * Coupon consuming - */ - public function consumeAction() - { - $this->checkCartNotEmpty(); - - $message = false; - $couponCodeForm = $this->createForm(FrontForm::COUPON_CONSUME); - - try { - $form = $this->validateForm($couponCodeForm, 'post'); - - $couponCode = $form->get('coupon-code')->getData(); - - if (null === $couponCode || empty($couponCode)) { - $message = true; - throw new \Exception( - $this->getTranslator()->trans( - 'Coupon code can\'t be empty', - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - $couponConsumeEvent = new CouponConsumeEvent($couponCode); - - // Dispatch Event to the Action - $this->getDispatcher()->dispatch(TheliaEvents::COUPON_CONSUME, $couponConsumeEvent); - - /* recalculate postage amount */ - $order = $this->getSession()->getOrder(); - - if (null !== $order) { - $deliveryModule = $order->getModuleRelatedByDeliveryModuleId(); - $deliveryAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - - if (null !== $deliveryModule && null !== $deliveryAddress) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $orderEvent = new OrderEvent($order); - - try { - $postage = OrderPostage::loadFromPostage( - $moduleInstance->getPostage($deliveryAddress->getCountry()) - ); - - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - } catch (DeliveryException $ex) { - // The postage has been chosen, but changes dues to coupon causes an exception. - // Reset the postage data in the order - $orderEvent->setDeliveryModule(0); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - } - } - } - - return $this->generateSuccessRedirect($couponCodeForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - 'Please check your coupon code: %message', - ["%message" => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (UnmatchableConditionException $e) { - $message = $this->getTranslator()->trans( - 'You should sign in or register to use this coupon', - [ - '%sign' => $this->retrieveUrlFromRouteId('customer.login.view'), - '%register' => $this->retrieveUrlFromRouteId('customer.create.view'), - ], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - 'Sorry, an error occurred: %message', - ["%message" => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order delivery process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $couponCodeForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($couponCodeForm) - ->setGeneralError($message); - } - - return $this->generateErrorRedirect($couponCodeForm); - } -} diff --git a/local/local/modules/Front/Controller/CustomerController.php b/local/local/modules/Front/Controller/CustomerController.php deleted file mode 100644 index 9c36aa1a..00000000 --- a/local/local/modules/Front/Controller/CustomerController.php +++ /dev/null @@ -1,610 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent; -use Thelia\Core\Event\Customer\CustomerEvent; -use Thelia\Core\Event\Customer\CustomerLoginEvent; -use Thelia\Core\Event\LostPasswordEvent; -use Thelia\Core\Event\Newsletter\NewsletterEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Core\Security\Authentication\CustomerUsernamePasswordFormAuthenticator; -use Thelia\Core\Security\Exception\AuthenticationException; -use Thelia\Core\Security\Exception\CustomerNotConfirmedException; -use Thelia\Core\Security\Exception\UsernameNotFoundException; -use Thelia\Core\Security\Exception\WrongPasswordException; -use Thelia\Form\CustomerLogin; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\ConfigQuery; -use Thelia\Model\Customer; -use Thelia\Model\CustomerQuery; -use Thelia\Model\NewsletterQuery; -use Thelia\Tools\RememberMeTrait; -use Thelia\Tools\URL; - -/** - * Class CustomerController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class CustomerController extends BaseFrontController -{ - use RememberMeTrait; - - /** - * Display the register template if no customer logged - */ - public function viewLoginAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - return $this->render("login"); - } - - /** - * Display the register template if no customer logged - */ - public function viewRegisterAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - return $this->render("register"); - } - - public function newPasswordAction() - { - $passwordLost = $this->createForm(FrontForm::CUSTOMER_LOST_PASSWORD); - - if (! $this->getSecurityContext()->hasCustomerUser()) { - try { - $form = $this->validateForm($passwordLost); - - $event = new LostPasswordEvent($form->get("email")->getData()); - - $this->dispatch(TheliaEvents::LOST_PASSWORD, $event); - - return $this->generateSuccessRedirect($passwordLost); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occurred: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf( - "Error during customer creation process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - } - } else { - $message = $this->getTranslator()->trans( - "You're currently logged in. Please log out before requesting a new password.", - [], - Front::MESSAGE_DOMAIN - ); - } - - $passwordLost->setErrorMessage($message); - - $this->getParserContext() - ->addForm($passwordLost) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($passwordLost->hasErrorUrl()) { - return $this->generateErrorRedirect($passwordLost); - } - } - - public function newPasswordSentAction() - { - $this->getParser()->assign('password_sent', true); - } - - /** - * Create a new customer. - * On success, redirect to success_url if exists, otherwise, display the same view again. - */ - public function createAction() - { - if (! $this->getSecurityContext()->hasCustomerUser()) { - $customerCreation = $this->createForm(FrontForm::CUSTOMER_CREATE); - - try { - $form = $this->validateForm($customerCreation, "post"); - - $customerCreateEvent = $this->createEventInstance($form->getData()); - - $this->dispatch(TheliaEvents::CUSTOMER_CREATEACCOUNT, $customerCreateEvent); - - $newCustomer = $customerCreateEvent->getCustomer(); - - // Newsletter - if (true === $form->get('newsletter')->getData()) { - $newsletterEmail = $newCustomer->getEmail(); - $nlEvent = new NewsletterEvent( - $newsletterEmail, - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setFirstname($newCustomer->getFirstname()); - $nlEvent->setLastname($newCustomer->getLastname()); - - // Security : Check if this new Email address already exist - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterEmail)) { - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent); - } else { - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent); - } - } - - if (ConfigQuery::isCustomerEmailConfirmationEnable() && ! $newCustomer->getEnable()) { - $response = $this->generateRedirectFromRoute('customer.login.view'); - } else { - $this->processLogin($customerCreateEvent->getCustomer()); - - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - if ($cart->getCartItems()->count() > 0) { - $response = $this->generateRedirectFromRoute('cart.view'); - } else { - $response = $this->generateSuccessRedirect($customerCreation); - } - } - - return $response; - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer creation process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - - $customerCreation->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerCreation) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerCreation->hasErrorUrl()) { - return $this->generateErrorRedirect($customerCreation); - } - } - } - - /** - * Prepare customer data update. - */ - public function viewAction() - { - $this->checkAuth(); - - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - $data = array( - 'id' => $customer->getId(), - 'title' => $customer->getTitleId(), - 'firstname' => $customer->getFirstName(), - 'lastname' => $customer->getLastName(), - 'email' => $customer->getEmail(), - 'email_confirm' => $customer->getEmail(), - 'newsletter' => null !== NewsletterQuery::create()->findOneByEmail($customer->getEmail()), - ); - - $customerProfileUpdateForm = $this->createForm(FrontForm::CUSTOMER_PROFILE_UPDATE, 'form', $data); - - // Pass it to the parser - $this->getParserContext()->addForm($customerProfileUpdateForm); - } - - public function updatePasswordAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $customerPasswordUpdateForm = $this->createForm(FrontForm::CUSTOMER_PASSWORD_UPDATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($customerPasswordUpdateForm, "post"); - - $customerChangeEvent = $this->createEventInstance($form->getData()); - $customerChangeEvent->setCustomer($customer); - $this->dispatch(TheliaEvents::CUSTOMER_UPDATEPROFILE, $customerChangeEvent); - - return $this->generateSuccessRedirect($customerPasswordUpdateForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer password modification process : %s.", - $message - ) - ); - - $customerPasswordUpdateForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerPasswordUpdateForm) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerPasswordUpdateForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerPasswordUpdateForm); - } - } - } - - public function updateAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $customerProfileUpdateForm = $this->createForm(FrontForm::CUSTOMER_PROFILE_UPDATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - $newsletterOldEmail = $customer->getEmail(); - - $form = $this->validateForm($customerProfileUpdateForm, "post"); - - $customerChangeEvent = $this->createEventInstance($form->getData()); - $customerChangeEvent->setCustomer($customer); - - $customerChangeEvent->setEmailUpdateAllowed( - (intval(ConfigQuery::read('customer_change_email', 0))) ? true : false - ); - - $this->dispatch(TheliaEvents::CUSTOMER_UPDATEPROFILE, $customerChangeEvent); - - $updatedCustomer = $customerChangeEvent->getCustomer(); - - // Newsletter - if (true === $form->get('newsletter')->getData()) { - $nlEvent = new NewsletterEvent( - $updatedCustomer->getEmail(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setFirstname($updatedCustomer->getFirstname()); - $nlEvent->setLastname($updatedCustomer->getLastname()); - - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterOldEmail)) { - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent); - } else { - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent); - } - } else { - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterOldEmail)) { - $nlEvent = new NewsletterEvent( - $updatedCustomer->getEmail(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UNSUBSCRIBE, $nlEvent); - } - } - - $this->processLogin($updatedCustomer); - - return $this->generateSuccessRedirect($customerProfileUpdateForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error(sprintf("Error during customer modification process : %s.", $message)); - - $customerProfileUpdateForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerProfileUpdateForm) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerProfileUpdateForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerProfileUpdateForm); - } - } - } - - /** - * Perform user login. On a successful login, the user is redirected to the URL - * found in the success_url form parameter, or / if none was found. - * - * If login is not successfull, the same view is displayed again. - * - */ - public function loginAction() - { - if (!$this->getSecurityContext()->hasCustomerUser()) { - $request = $this->getRequest(); - $customerLoginForm = new CustomerLogin($request); - - try { - $form = $this->validateForm($customerLoginForm, "post"); - - // If User is a new customer - if ($form->get('account')->getData() == 0 && $form->get("email")->getErrors()->count() == 0) { - return $this->generateRedirectFromRoute( - "customer.create.process", - ["email" => $form->get("email")->getData()] - ); - } else { - try { - $authenticator = new CustomerUsernamePasswordFormAuthenticator($request, $customerLoginForm); - - /** @var Customer $customer */ - $customer = $authenticator->getAuthentifiedUser(); - - $this->processLogin($customer); - - if (intval($form->get('remember_me')->getData()) > 0) { - // If a remember me field if present and set in the form, create - // the cookie thant store "remember me" information - $this->createRememberMeCookie( - $customer, - $this->getRememberMeCookieName(), - $this->getRememberMeCookieExpiration() - ); - } - - return $this->generateSuccessRedirect($customerLoginForm); - - } catch (UsernameNotFoundException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (WrongPasswordException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (CustomerNotConfirmedException $e) { - if ($e->getUser() !== null) { - // Send the confirmation email again - $this->getDispatcher()->dispatch( - TheliaEvents::SEND_ACCOUNT_CONFIRMATION_EMAIL, - new CustomerEvent($e->getUser()) - ); - } - $message = $this->getTranslator()->trans( - "Your account is not yet confirmed. A confirmation email has been sent to your email address, please check your mailbox", - [], - Front::MESSAGE_DOMAIN - ); - } catch (AuthenticationException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } - - } - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer login process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - - $customerLoginForm->setErrorMessage($message); - - $this->getParserContext()->addForm($customerLoginForm); - - if ($customerLoginForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerLoginForm); - } - } - } - - /** - * Perform customer logout. - */ - public function logoutAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $this->dispatch(TheliaEvents::CUSTOMER_LOGOUT); - } - - $this->clearRememberMeCookie($this->getRememberMeCookieName()); - - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - /** - * @param $token - * @return \Symfony\Component\HttpFoundation\Response - * @throws \Exception - * @throws \Propel\Runtime\Exception\PropelException - */ - public function confirmCustomerAction($token) - { - /** @var Customer $customer */ - if (null === $customer = CustomerQuery::create()->findOneByConfirmationToken($token)) { - throw new NotFoundHttpException(); - } - - $customer - ->setEnable(true) - ->save() - ; - - // Clear form error context - - return $this->generateRedirectFromRoute('customer.login.view', [ 'validation_done' => 1 ]); - } - - /** - * Dispatch event for customer login action - * - * @param Customer $customer - */ - protected function processLogin(Customer $customer) - { - $this->dispatch(TheliaEvents::CUSTOMER_LOGIN, new CustomerLoginEvent($customer)); - } - - /** - * @param $data - * @return \Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent - */ - private function createEventInstance($data) - { - $customerCreateEvent = new CustomerCreateOrUpdateEvent( - isset($data["title"])?$data["title"]:null, - isset($data["firstname"])?$data["firstname"]:null, - isset($data["lastname"])?$data["lastname"]:null, - isset($data["address1"])?$data["address1"]:null, - isset($data["address2"])?$data["address2"]:null, - isset($data["address3"])?$data["address3"]:null, - isset($data["phone"])?$data["phone"]:null, - isset($data["cellphone"])?$data["cellphone"]:null, - isset($data["zipcode"])?$data["zipcode"]:null, - isset($data["city"])?$data["city"]:null, - isset($data["country"])?$data["country"]:null, - isset($data["email"])?$data["email"]:null, - isset($data["password"]) ? $data["password"]:null, - $this->getRequest()->getSession()->getLang()->getId(), - isset($data["reseller"])?$data["reseller"]:null, - isset($data["sponsor"])?$data["sponsor"]:null, - isset($data["discount"])?$data["discount"]:null, - isset($data["company"])?$data["company"]:null, - null, - isset($data["state"])?$data["state"]:null - ); - - return $customerCreateEvent; - } - - - protected function getRememberMeCookieName() - { - return ConfigQuery::read('customer_remember_me_cookie_name', 'crmcn'); - } - - protected function getRememberMeCookieExpiration() - { - return ConfigQuery::read('customer_remember_me_cookie_expiration', 2592000 /* 1 month */); - } -} diff --git a/local/local/modules/Front/Controller/FeedController.php b/local/local/modules/Front/Controller/FeedController.php deleted file mode 100644 index 5c3f03b6..00000000 --- a/local/local/modules/Front/Controller/FeedController.php +++ /dev/null @@ -1,202 +0,0 @@ - - */ -class FeedController extends BaseFrontController { - - - /** - * Folder name for feeds cache - */ - const FEED_CACHE_DIR = "feeds"; - - /** - * Key prefix for feed cache - */ - const FEED_CACHE_KEY = "feed"; - - - /** - * render the RSS feed - * - * @param $context string The context of the feed : catalog, content. default: catalog - * @param $lang string The lang of the feed : fr_FR, en_US, ... default: default language of the site - * @param $id string The id of the parent element. The id of the main parent category for catalog context. - * The id of the content folder for content context - * @return Response - * @throws \RuntimeException - */ - public function generateAction($context, $lang, $id) - { - - /** @var Request $request */ - $request = $this->getRequest(); - - // context - if ("" === $context){ - $context = "catalog"; - } else if (! in_array($context, array("catalog", "content", "brand")) ){ - $this->pageNotFound(); - } - - // the locale : fr_FR, en_US, - if ("" !== $lang) { - if (! $this->checkLang($lang)){ - $this->pageNotFound(); - } - } else { - try{ - $lang = Lang::getDefaultLanguage(); - $lang = $lang->getLocale(); - } catch (\RuntimeException $ex){ - // @todo generate error page - throw new \RuntimeException("No default language is defined. Please define one."); - } - } - if (null === $lang = LangQuery::create()->findOneByLocale($lang)){ - $this->pageNotFound(); - } - $lang = $lang->getId(); - - // check if element exists and is visible - if ("" !== $id){ - if (false === $this->checkId($context, $id)){ - $this->pageNotFound(); - } - } - - $flush = $request->query->get("flush", ""); - - // check if feed already in cache - $cacheContent = false; - - $cacheDir = $this->getCacheDir(); - $cacheKey = self::FEED_CACHE_KEY . $lang . $context . $id; - $cacheExpire = intval(ConfigQuery::read("feed_ttl", '7200')) ?: 7200; - - $cacheDriver = new FilesystemCache($cacheDir); - if (!($this->checkAdmin() && "" !== $flush)){ - $cacheContent = $cacheDriver->fetch($cacheKey); - } else { - $cacheDriver->delete($cacheKey); - } - - // if not in cache - if (false === $cacheContent){ - // render the view - $cacheContent = $this->renderRaw( - "feed", - array( - "_context_" => $context, - "_lang_" => $lang, - "_id_" => $id - ) - ); - // save cache - $cacheDriver->save($cacheKey, $cacheContent, $cacheExpire); - } - - $response = new Response(); - $response->setContent($cacheContent); - $response->headers->set('Content-Type', 'application/rss+xml'); - - return $response; - } - - - /** - * get the cache directory for feeds - * - * @return mixed|string - */ - protected function getCacheDir() - { - $cacheDir = $this->container->getParameter("kernel.cache_dir"); - $cacheDir = rtrim($cacheDir, '/'); - $cacheDir .= '/' . self::FEED_CACHE_DIR . '/'; - - return $cacheDir; - } - - /** - * Check if current user has ADMIN role - * - * @return bool - */ - protected function checkAdmin(){ - return $this->getSecurityContext()->hasAdminUser(); - } - - - /** - * Check if a lang is used - * - * @param $lang string The lang code. e.g.: fr - * @return bool true if the language is used, otherwise false - */ - private function checkLang($lang) - { - // load locals - $lang = LangQuery::create() - ->findOneByLocale($lang); - - return (null !== $lang); - } - - - /** - * Check if the element exists and is visible - * - * @param $context string catalog or content - * @param $id string id of the element - * @return bool - */ - private function checkId($context, $id) - { - $ret = false; - if (is_numeric($id)){ - if ("catalog" === $context){ - $cat = CategoryQuery::create()->findPk($id); - $ret = (null !== $cat && $cat->getVisible()); - } elseif ("brand" === $context) { - $brand = BrandQuery::create()->findPk($id); - $ret = (null !== $brand && $brand->getVisible()); - } else { - $folder = FolderQuery::create()->findPk($id); - $ret = (null !== $folder && $folder->getVisible()); - } - } - return $ret; - } -} \ No newline at end of file diff --git a/local/local/modules/Front/Controller/NewsletterController.php b/local/local/modules/Front/Controller/NewsletterController.php deleted file mode 100644 index 9e558141..00000000 --- a/local/local/modules/Front/Controller/NewsletterController.php +++ /dev/null @@ -1,164 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\HttpFoundation\JsonResponse; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Newsletter\NewsletterEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\Definition\FrontForm; -use Thelia\Log\Tlog; -use Thelia\Model\Customer; -use Thelia\Model\NewsletterQuery; - -/** - * Class NewsletterController - * @package Thelia\Controller\Front - * @author Manuel Raynaud , Franck Allimant - */ -class NewsletterController extends BaseFrontController -{ - /** - * @since 2.3.0-alpha2 - */ - public function unsubscribeAction() - { - $errorMessage = false; - - $newsletterForm = $this->createForm(FrontForm::NEWSLETTER_UNSUBSCRIBE); - - try { - $form = $this->validateForm($newsletterForm); - - $email = $form->get('email')->getData(); - - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($email)) { - $event = new NewsletterEvent( - $email, - $this->getRequest()->getSession()->getLang()->getLocale() - ); - - $event->setId($newsletter->getId()); - - $this->dispatch(TheliaEvents::NEWSLETTER_UNSUBSCRIBE, $event); - - // If a success URL is defined in the form, redirect to it, otherwise use the defaut view - if ($newsletterForm->hasSuccessUrl() && !$this->getRequest()->isXmlHttpRequest()) { - return $this->generateSuccessRedirect($newsletterForm); - } - } - } catch (\Exception $e) { - $errorMessage = $e->getMessage(); - - Tlog::getInstance()->error(sprintf('Error during newsletter unsubscription : %s', $errorMessage)); - - $newsletterForm->setErrorMessage($errorMessage); - } - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return new JsonResponse([ - "success" => ($errorMessage) ? false : true, - "message" => ($errorMessage) ? $errorMessage : $this->getTranslator()->trans( - "Your subscription to our newsletter has been canceled.", - [], - Front::MESSAGE_DOMAIN - ) - ], ($errorMessage) ? 500 : 200); - } - - $this->getParserContext() - ->setGeneralError($errorMessage) - ->addForm($newsletterForm); - - // If an error URL is defined in the form, redirect to it, otherwise use the defaut view - if ($errorMessage && $newsletterForm->hasErrorUrl()) { - return $this->generateErrorRedirect($newsletterForm); - } - } - - public function subscribeAction() - { - $errorMessage = false; - - $newsletterForm = $this->createForm(FrontForm::NEWSLETTER); - - try { - $form = $this->validateForm($newsletterForm); - - $event = new NewsletterEvent( - $form->get('email')->getData(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - - /** @var Customer $customer */ - if (null !== $customer = $this->getSecurityContext()->getCustomerUser()) { - $event - ->setFirstname($customer->getFirstname()) - ->setLastname($customer->getLastname()) - ; - } else { - $event - ->setFirstname($form->get('firstname')->getData()) - ->setLastname($form->get('lastname')->getData()) - ; - } - - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $event); - - // If a success URL is defined in the form, redirect to it, otherwise use the defaut view - if ($newsletterForm->hasSuccessUrl() && ! $this->getRequest()->isXmlHttpRequest()) { - return $this->generateSuccessRedirect($newsletterForm); - } - } catch (\Exception $e) { - $errorMessage = $e->getMessage(); - - Tlog::getInstance()->error(sprintf('Error during newsletter subscription : %s', $errorMessage)); - - $newsletterForm->setErrorMessage($errorMessage); - } - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return new JsonResponse([ - "success" => ($errorMessage) ? false : true, - "message" => ($errorMessage) ? $errorMessage : $this->getTranslator()->trans( - "Thanks for signing up! We'll keep you posted whenever we have any new updates.", - [], - Front::MESSAGE_DOMAIN - ) - ], ($errorMessage) ? 500 : 200); - } - - $this->getParserContext() - ->setGeneralError($errorMessage) - ->addForm($newsletterForm); - - // If an error URL is defined in the form, redirect to it, otherwise use the defaut view - if ($errorMessage && $newsletterForm->hasErrorUrl()) { - return $this->generateErrorRedirect($newsletterForm); - } - } -} diff --git a/local/local/modules/Front/Controller/OrderController.php b/local/local/modules/Front/Controller/OrderController.php deleted file mode 100644 index 34ad4139..00000000 --- a/local/local/modules/Front/Controller/OrderController.php +++ /dev/null @@ -1,604 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\ActiveQuery\Criteria; -use Propel\Runtime\Exception\PropelException; -use Symfony\Component\HttpFoundation\Response as BaseResponse; -use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Delivery\DeliveryPostageEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\Product\VirtualProductOrderDownloadResponseEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Core\HttpFoundation\Request; -use Thelia\Exception\TheliaProcessException; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\Address; -use Thelia\Model\AddressQuery; -use Thelia\Model\AreaDeliveryModuleQuery; -use Thelia\Model\ConfigQuery; -use Thelia\Model\ModuleQuery; -use Thelia\Model\Order; -use Thelia\Model\OrderProductQuery; -use Thelia\Model\OrderQuery; -use Thelia\Module\AbstractDeliveryModule; -use Thelia\Module\Exception\DeliveryException; - -/** - * Class OrderController - * @package Thelia\Controller\Front - * @author Etienne Roudeix - */ -class OrderController extends BaseFrontController -{ - /** - * Check if the cart contains only virtual products. - */ - public function deliverView() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - - // check if the cart contains only virtual products - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - $deliveryAddress = $this->getCustomerAddress(); - - if ($cart->isVirtual()) { - if (null !== $deliveryAddress) { - $deliveryModule = ModuleQuery::create()->retrieveVirtualProductDelivery($this->container); - - if (false === $deliveryModule) { - Tlog::getInstance()->error( - $this->getTranslator()->trans( - "To enable the virtual product feature, the VirtualProductDelivery module should be activated", - [], - Front::MESSAGE_DOMAIN - ) - ); - } elseif (count($deliveryModule) == 1) { - return $this->registerVirtualProductDelivery($deliveryModule[0], $deliveryAddress); - } - } - } - - return $this->render( - 'order-delivery', - [ - 'delivery_address_id' => (null !== $deliveryAddress) ? $deliveryAddress->getId() : null - ] - ); - } - - /** - * @param AbstractDeliveryModule $moduleInstance - * @param Address $deliveryAddress - * @return \Symfony\Component\HttpFoundation\Response - */ - private function registerVirtualProductDelivery($moduleInstance, $deliveryAddress) - { - /* get postage amount */ - $deliveryModule = $moduleInstance->getModuleModel(); - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $deliveryAddress); - - $this->getDispatcher()->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - $postage = $deliveryPostageEvent->getPostage(); - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setDeliveryAddress($deliveryAddress->getId()); - $orderEvent->setDeliveryModule($deliveryModule->getId()); - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - - return $this->generateRedirectFromRoute("order.invoice"); - } - - /** - * set delivery address - * set delivery module - */ - public function deliver() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - - $message = false; - - $orderDelivery = $this->createForm(FrontForm::ORDER_DELIVER); - - try { - $form = $this->validateForm($orderDelivery, "post"); - - $deliveryAddressId = $form->get("delivery-address")->getData(); - $deliveryModuleId = $form->get("delivery-module")->getData(); - $deliveryAddress = AddressQuery::create()->findPk($deliveryAddressId); - $deliveryModule = ModuleQuery::create()->findPk($deliveryModuleId); - - /* check that the delivery address belongs to the current customer */ - if ($deliveryAddress->getCustomerId() !== $this->getSecurityContext()->getCustomerUser()->getId()) { - throw new \Exception( - $this->getTranslator()->trans( - "Delivery address does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - /* check that the delivery module fetches the delivery address area */ - if (null === AreaDeliveryModuleQuery::create()->findByCountryAndModule( - $deliveryAddress->getCountry(), - $deliveryModule - )) { - throw new \Exception( - $this->getTranslator()->trans( - "Delivery module cannot be use with selected delivery address", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - /* get postage amount */ - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $deliveryAddress); - - $this->getDispatcher()->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - if (!$deliveryPostageEvent->isValidModule() || null === $deliveryPostageEvent->getPostage()) { - throw new DeliveryException( - $this->getTranslator()->trans('The delivery module is not valid.', [], Front::MESSAGE_DOMAIN) - ); - } - - $postage = $deliveryPostageEvent->getPostage(); - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setDeliveryAddress($deliveryAddressId); - $orderEvent->setDeliveryModule($deliveryModuleId); - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - - return $this->generateRedirectFromRoute("order.invoice"); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order delivery process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $orderDelivery->setErrorMessage($message); - - $this->getParserContext() - ->addForm($orderDelivery) - ->setGeneralError($message) - ; - } - } - - /** - * set invoice address - * set payment module - */ - public function invoice() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - $this->checkValidDelivery(); - - $message = false; - - $orderPayment = $this->createForm(FrontForm::ORDER_PAYMENT); - - try { - $form = $this->validateForm($orderPayment, "post"); - - $invoiceAddressId = $form->get("invoice-address")->getData(); - $paymentModuleId = $form->get("payment-module")->getData(); - - /* check that the invoice address belongs to the current customer */ - $invoiceAddress = AddressQuery::create()->findPk($invoiceAddressId); - if ($invoiceAddress->getCustomerId() !== $this->getSecurityContext()->getCustomerUser()->getId()) { - throw new \Exception( - $this->getTranslator()->trans( - "Invoice address does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setInvoiceAddress($invoiceAddressId); - $orderEvent->setPaymentModule($paymentModuleId); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_INVOICE_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_PAYMENT_MODULE, $orderEvent); - - return $this->generateRedirectFromRoute("order.payment.process"); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order payment process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $orderPayment->setErrorMessage($message); - - $this->getParserContext() - ->addForm($orderPayment) - ->setGeneralError($message) - ; - } - - return $this->generateErrorRedirect($orderPayment); - } - - public function pay() - { - /* check customer */ - $this->checkAuth(); - - /* check cart count */ - $this->checkCartNotEmpty(); - - /* check stock not empty */ - if (true === ConfigQuery::checkAvailableStock()) { - if (null !== $response = $this->checkStockNotEmpty()) { - return $response; - } - } - - /* check delivery address and module */ - $this->checkValidDelivery(); - - /* check invoice address and payment module */ - $this->checkValidInvoice(); - - $orderEvent = $this->getOrderEvent(); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_PAY, $orderEvent); - - $placedOrder = $orderEvent->getPlacedOrder(); - - if (null !== $placedOrder && null !== $placedOrder->getId()) { - /* order has been placed */ - if ($orderEvent->hasResponse()) { - return $orderEvent->getResponse(); - } else { - return $this->generateRedirectFromRoute( - 'order.placed', - [], - ['order_id' => $orderEvent->getPlacedOrder()->getId()] - ); - } - } else { - /* order has not been placed */ - return $this->generateRedirectFromRoute('cart.view'); - } - } - - public function orderPlaced($order_id) - { - /* check if the placed order matched the customer */ - $placedOrder = OrderQuery::create()->findPk( - $this->getRequest()->attributes->get('order_id') - ); - - if (null === $placedOrder) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "No placed order", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::NO_PLACED_ORDER, - $placedOrder - ); - } - - $customer = $this->getSecurityContext()->getCustomerUser(); - - if (null === $customer || $placedOrder->getCustomerId() !== $customer->getId()) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "Received placed order id does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::PLACED_ORDER_ID_BAD_CURRENT_CUSTOMER, - $placedOrder - ); - } - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_CART_CLEAR, $this->getOrderEvent()); - - $this->getParserContext()->set("placed_order_id", $placedOrder->getId()); - } - - - public function orderFailed($order_id, $message) - { - if (empty($order_id)) { - // Fallback to request parameter if the method parameter is empty. - $order_id = $this->getRequest()->get('order_id'); - } - - $failedOrder = OrderQuery::create()->findPk($order_id); - - if (null !== $failedOrder) { - $customer = $this->getSecurityContext()->getCustomerUser(); - - if (null === $customer || $failedOrder->getCustomerId() !== $customer->getId()) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "Received failed order id does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::PLACED_ORDER_ID_BAD_CURRENT_CUSTOMER, - $failedOrder - ); - } - } else { - Tlog::getInstance()->warning("Failed order ID '$order_id' not found."); - } - - $this->getParserContext() - ->set("failed_order_id", $order_id) - ->set("failed_order_message", $message) - ; - } - - protected function getOrderEvent() - { - $order = $this->getOrder($this->getRequest()); - - return new OrderEvent($order); - } - - public function getOrder(Request $request) - { - $session = $request->getSession(); - - if (null !== $order = $session->getOrder()) { - return $order; - } - - $order = new Order(); - - $session->setOrder($order); - - return $order; - } - - - public function viewAction($order_id) - { - $this->checkOrderCustomer($order_id); - - return $this->render('account-order', ['order_id' => $order_id]); - } - - public function generateInvoicePdf($order_id) - { - $this->checkOrderCustomer($order_id); - - - return $this->generateOrderPdf($order_id, ConfigQuery::read('pdf_invoice_file', 'invoice')); - } - - public function generateDeliveryPdf($order_id) - { - $this->checkOrderCustomer($order_id); - - return $this->generateOrderPdf($order_id, ConfigQuery::read('pdf_delivery_file', 'delivery')); - } - - public function downloadVirtualProduct($order_product_id) - { - if (null !== $orderProduct = OrderProductQuery::create()->findPk($order_product_id)) { - $order = $orderProduct->getOrder(); - - if ($order->isPaid(false)) { - // check customer - $this->checkOrderCustomer($order->getId()); - - $virtualProductEvent = new VirtualProductOrderDownloadResponseEvent($orderProduct); - $this->getDispatcher()->dispatch( - TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE, - $virtualProductEvent - ); - - $response = $virtualProductEvent->getResponse(); - - if (!$response instanceof BaseResponse) { - throw new \RuntimeException('A Response must be added in the event TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE'); - } - - return $response; - } - } - - throw new AccessDeniedHttpException(); - - } - - private function checkOrderCustomer($order_id) - { - $this->checkAuth(); - - $order = OrderQuery::create()->findPk($order_id); - $valid = true; - if ($order) { - $customerOrder = $order->getCustomer(); - $customer = $this->getSecurityContext()->getCustomerUser(); - - if ($customerOrder->getId() != $customer->getId()) { - $valid = false; - } - } else { - $valid = false; - } - - if (false === $valid) { - throw new AccessDeniedHttpException(); - } - } - - public function getDeliveryModuleListAjaxAction() - { - $this->checkXmlHttpRequest(); - - // Change the delivery address if customer has changed it - $address = null; - $session = $this->getSession(); - $addressId = $this->getRequest()->get('address_id', null); - if (null !== $addressId && $addressId !== $session->getOrder()->getChoosenDeliveryAddress()) { - $address = AddressQuery::create()->findPk($addressId); - if (null !== $address && $address->getCustomerId() === $session->getCustomerUser()->getId()) { - $session->getOrder()->setChoosenDeliveryAddress($addressId); - } - } - - $address = AddressQuery::create()->findPk($session->getOrder()->getChoosenDeliveryAddress()); - - $countryId = $address->getCountryId(); - $stateId = $address->getStateId(); - - $args = array( - 'country' => $countryId, - 'state' => $stateId, - 'address' => $session->getOrder()->getChoosenDeliveryAddress() - ); - - return $this->render('ajax/order-delivery-module-list', $args); - } - - /** - * Redirect to cart view if at least one non product is out of stock - * - * @return null|BaseResponse - */ - private function checkStockNotEmpty() - { - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - $cartItems = $cart->getCartItems(); - - foreach ($cartItems as $cartItem) { - $pse = $cartItem->getProductSaleElements(); - - $product = $cartItem->getProduct(); - - if ($pse->getQuantity() <= 0 && $product->getVirtual() !== 1) { - return $this->generateRedirectFromRoute('cart.view'); - } - } - - return null; - } - - /** - * Retrieve the chosen delivery address for a cart or the default customer address if not exists - * - * @return null|Address - */ - protected function getCustomerAddress() - { - $deliveryAddress = null; - $addressId = $this->getSession()->getOrder()->getChoosenDeliveryAddress(); - if (null === $addressId) { - $customer = $this->getSecurityContext()->getCustomerUser(); - - $deliveryAddress = AddressQuery::create() - ->filterByCustomerId($customer->getId()) - ->orderByIsDefault(Criteria::DESC) - ->findOne(); - - if (null !== $deliveryAddress) { - $this->getSession()->getOrder()->setChoosenDeliveryAddress( - $deliveryAddress->getId() - ); - } - } else { - $deliveryAddress = AddressQuery::create()->findPk($addressId); - } - - return $deliveryAddress; - } -} diff --git a/local/local/modules/Front/Controller/SitemapController.php b/local/local/modules/Front/Controller/SitemapController.php deleted file mode 100644 index c9c10986..00000000 --- a/local/local/modules/Front/Controller/SitemapController.php +++ /dev/null @@ -1,150 +0,0 @@ - - */ -class SitemapController extends BaseFrontController { - - - /** - * Folder name for sitemap cache - */ - const SITEMAP_CACHE_DIR = "sitemap"; - - /** - * Key prefix for sitemap cache - */ - const SITEMAP_CACHE_KEY = "sitemap"; - - /** - * @return Response - */ - public function generateAction() - { - /** @var Request $request */ - $request = $this->getRequest(); - - // the locale : fr, en, - $lang = $request->query->get("lang", ""); - if ("" !== $lang) { - if (! $this->checkLang($lang)){ - $this->pageNotFound(); - } - } - // specific content : product, category, cms - $context = $request->query->get("context", ""); - if (! in_array($context, array("", "catalog", "content")) ){ - $this->pageNotFound(); - } - - $flush = $request->query->get("flush", ""); - - // check if sitemap already in cache - $cacheContent = false; - - $cacheDir = $this->getCacheDir(); - $cacheKey = self::SITEMAP_CACHE_KEY . $lang . $context; - $cacheExpire = intval(ConfigQuery::read("sitemap_ttl", '7200')) ?: 7200; - - $cacheDriver = new FilesystemCache($cacheDir); - if (!($this->checkAdmin() && "" !== $flush)){ - $cacheContent = $cacheDriver->fetch($cacheKey); - } else { - $cacheDriver->delete($cacheKey); - } - - // if not in cache - if (false === $cacheContent){ - // render the view - $cacheContent = $this->renderRaw( - "sitemap", - array( - "_lang_" => $lang, - "_context_" => $context - ) - ); - // save cache - $cacheDriver->save($cacheKey, $cacheContent, $cacheExpire); - } - - $response = new Response(); - $response->setContent($cacheContent); - $response->headers->set('Content-Type', 'application/xml'); - - return $response; - } - - - /** - * get the cache directory for sitemap - * - * @return mixed|string - */ - protected function getCacheDir() - { - $cacheDir = $this->container->getParameter("kernel.cache_dir"); - $cacheDir = rtrim($cacheDir, '/'); - $cacheDir .= '/' . self::SITEMAP_CACHE_DIR . '/'; - - return $cacheDir; - } - - /** - * Check if current user has ADMIN role - * - * @return bool - */ - protected function checkAdmin(){ - return $this->getSecurityContext()->hasAdminUser(); - } - - - /** - * Check if a lang is used - * - * @param $lang The lang code. e.g.: fr - * @return bool true if the language is used, otherwise false - */ - private function checkLang($lang) - { - // load locals - $lang = LangQuery::create() - ->findOneByCode($lang); - - return (null !== $lang); - } - -} \ No newline at end of file diff --git a/local/local/modules/Front/Front.php b/local/local/modules/Front/Front.php deleted file mode 100644 index c085f27f..00000000 --- a/local/local/modules/Front/Front.php +++ /dev/null @@ -1,31 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front; - -use Thelia\Module\BaseModule; - -class Front extends BaseModule -{ - const MESSAGE_DOMAIN = 'front'; -} diff --git a/local/local/modules/Front/I18n/de_DE.php b/local/local/modules/Front/I18n/de_DE.php deleted file mode 100644 index bf641783..00000000 --- a/local/local/modules/Front/I18n/de_DE.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Gutschein-Code darf nicht leer sein', - 'Delivery address does not belong to the current customer' => 'Lieferadresse gehört nicht zum aktuellen Kunden', - 'Delivery module cannot be use with selected delivery address' => 'Lieferung-Modul kann nicht mit ausgewählten Lieferadresse verwendet werden', - 'Error during address deletion process' => 'Fehler beim Löschen der Adresse', - 'Failed to add this article to your cart, please try again' => 'Der Artikel konnte nicht zum Warenkorb hinzugefügt werden, bitte versuchen Sie es erneut', - 'Invoice address does not belong to the current customer' => 'Rechnungsadresse gehört nicht zum aktuellen Kunden', - 'No placed order' => 'Keine Bestellungen', - 'Please check your coupon code: %message' => 'Bitte überprüfen Sie Ihren Gutschein-Code: %message', - 'Please check your input: %s' => 'Bitte überprüfen Sie Ihre Eingabe: %s', - 'Received failed order id does not belong to the current customer' => 'Empfangene Id einer fehlgeschlagenen Bestellung gehört nicht zum aktuellen Kunden', - 'Received placed order id does not belong to the current customer' => 'Empfangene Bestellungs-Id gehört nicht zum aktuellen Kunden', - 'Sorry, an error occured: %s' => 'Leider ist ein Fehler aufgetreten: %s', - 'Sorry, an error occurred: %message' => 'Leider ist ein Fehler aufgetreten: %message', - 'Sorry, an error occurred: %s' => 'Es tut uns Leid, aber ein Fehler ist aufgetreten: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Vielen Dank für Ihre Anmeldung! Wir halten Ihnen auf dem Laufenden über neuen Updates.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Um das virtuelle Produkt-Feature zu aktivieren, sollte das VirtualProductDelivery-Modul aktiviert werden', - 'Wrong email or password. Please try again' => 'E-Mail oder Passwort falsch. Bitte erneut versuchen', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Sie sind derzeit angemeldet. Bitte melden Sie sich ab, bevor Sie ein neues Passwort anfordern.', -]; diff --git a/local/local/modules/Front/I18n/en_US.php b/local/local/modules/Front/I18n/en_US.php deleted file mode 100644 index 1db05104..00000000 --- a/local/local/modules/Front/I18n/en_US.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Coupon code can\'t be empty', - 'Delivery address does not belong to the current customer' => 'Delivery address does not belong to the current customer', - 'Delivery module cannot be use with selected delivery address' => 'Delivery module cannot be use with selected delivery address', - 'Error during address deletion process' => 'Error during address deletion process', - 'Failed to add this article to your cart, please try again' => 'Failed to add this article to your cart, please try again', - 'Invoice address does not belong to the current customer' => 'Invoice address does not belong to the current customer', - 'No placed order' => 'No placed order', - 'Please check your coupon code: %message' => 'Please check your coupon code: %message', - 'Please check your input: %s' => 'Please check your input: %s', - 'Received failed order id does not belong to the current customer' => 'Received failed order id does not belong to the current customer', - 'Received placed order id does not belong to the current customer' => 'Received placed order id does not belong to the current customer', - 'Sorry, an error occured: %s' => 'Sorry, an error occured: %s', - 'Sorry, an error occurred: %message' => 'Sorry, an error occurred: %message', - 'Sorry, an error occurred: %s' => 'Sorry, an error occurred: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'To enable the virtual product feature, the VirtualProductDelivery module should be activated', - 'Wrong email or password. Please try again' => 'Wrong email or password. Please try again', - 'You should sign in or register to use this coupon' => 'You should sign in or register to use this coupon', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'You\'re currently logged in. Please log out before requesting a new password.', - 'Your account is not yet confirmed check out your mailbox' => 'Your account is not yet confirmed check out your mailbox', -); diff --git a/local/local/modules/Front/I18n/fr_FR.php b/local/local/modules/Front/I18n/fr_FR.php deleted file mode 100644 index 35405e3e..00000000 --- a/local/local/modules/Front/I18n/fr_FR.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Le code promo ne peut être vide', - 'Delivery address does not belong to the current customer' => 'L\'adresse de livraison n\'appartient pas au client en cours', - 'Delivery module cannot be use with selected delivery address' => 'Le module de livraison ne peut pas être utilisé avec cette adresse de livraison', - 'Error during address deletion process' => 'Désolé. Une erreur s\'est produite lors de la suppression de l\'adresse', - 'Failed to add this article to your cart, please try again' => 'Impossible d\'ajouter cet article à votre panier. Merci de ré-essayer.', - 'Invoice address does not belong to the current customer' => 'L\'adresse de facturation n\'appartient pas au client en cours', - 'No placed order' => 'Aucune commande passée', - 'Please check your coupon code: %message' => 'Merci de vérifier votre code promo : %message', - 'Please check your input: %s' => 'Merci de vérifier les informations indiquées : %s', - 'Received failed order id does not belong to the current customer' => 'L\'id de commande refusée n\'appartient pas au client en cours', - 'Received placed order id does not belong to the current customer' => 'L\'id de commande passée n\'appartient pas au client en cours', - 'Sorry, an error occured: %s' => 'Désolé. Une erreur s\'est produite : %s', - 'Sorry, an error occurred: %message' => 'Désolé. Une erreur s\'est produite : %message', - 'Sorry, an error occurred: %s' => 'Désolé, une erreur est survenue : %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Merci de votre inscription ! Nous vous tiendrons informé dès qu\'il y aura des nouveautés.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Pour activer les produits virtuels, le module VirtualProductDelivery doit être activé', - 'Wrong email or password. Please try again' => 'Adresse email ou mot de passe incorrect. Merci de ré-essayer.', - 'You should sign in or register to use this coupon' => 'Vous devez vous connecter ou vous inscrire pour utiliser ce coupon', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Vous être actuellement connecté au site. Vous devez vous déconnecter pour demander un nouveau mot de passe.', -]; diff --git a/local/local/modules/Front/I18n/it_IT.php b/local/local/modules/Front/I18n/it_IT.php deleted file mode 100644 index 041021bb..00000000 --- a/local/local/modules/Front/I18n/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Il codice di sconto non può essere vuoto', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Grazie per l\'inscrizione! Ti terremo aggiornato ogni volta che abbiamo eventuali nuovi aggiornamenti.', - 'You should sign in or register to use this coupon' => 'Dovresti accedere o registrarti per utilizzare questo coupon', -]; diff --git a/local/local/modules/Front/I18n/tr_TR.php b/local/local/modules/Front/I18n/tr_TR.php deleted file mode 100644 index 47004a8b..00000000 --- a/local/local/modules/Front/I18n/tr_TR.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Kupon şifre boş olamaz', - 'Delivery address does not belong to the current customer' => 'Teslimat adresi geçerli müşteriye ait değil', - 'Delivery module cannot be use with selected delivery address' => 'Teslim modülü seçili teslimat adresi kullanılamaz', - 'Error during address deletion process' => 'Adres silme işlemi sırasında bir hata oluştu', - 'Failed to add this article to your cart, please try again' => 'Sepetinize Bu ürün eklenemedi, lütfen tekrar deneyin', - 'Invoice address does not belong to the current customer' => 'Fatura adresi geçerli müşteriye ait değil', - 'No placed order' => 'Yerleştirilen hiçbir sipariş', - 'Please check your coupon code: %message' => 'Kupon kodunuzu gözden geçirin: %message', - 'Please check your input: %s' => 'Lütfen girişinizi denetleyin: %s', - 'Received failed order id does not belong to the current customer' => 'Alınan başarısız sipariş kimliği geçerli müşteriye ait değil', - 'Received placed order id does not belong to the current customer' => 'Alınmış yerleştirilmiş sipariş kimliği geçerli müşteriye ait değil', - 'Sorry, an error occured: %s' => 'Üzgünüz, bir hata oluştu: %s', - 'Sorry, an error occurred: %message' => 'Üzgünüz, bir hata oluştu: %message', - 'Sorry, an error occurred: %s' => 'Üzgünüz, bir hata oluştu: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Teşekkürler. Yeni güncelleştirmeler olduğunda sizi haberdar edeceğiz.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Sanal ürün özelliği etkinleştirmek için VirtualProductDelivery modülü etkinleştirilmesi', - 'Wrong email or password. Please try again' => 'Email adresi veya şifre hatalı. Lütfen tekrar deneyiniz', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Şu anda logged içinde. Lütfen yeni bir parola istemeden önce çıkış.', -]; diff --git a/local/local/modules/Front/LICENSE.txt b/local/local/modules/Front/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/Front/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/Front/composer.json b/local/local/modules/Front/composer.json deleted file mode 100644 index b916b7bb..00000000 --- a/local/local/modules/Front/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/front-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Front" - } -} diff --git a/local/local/modules/HookAdminHome/Config/config.xml b/local/local/modules/HookAdminHome/Config/config.xml deleted file mode 100644 index ad256c63..00000000 --- a/local/local/modules/HookAdminHome/Config/config.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/local/modules/HookAdminHome/Config/module.xml b/local/local/modules/HookAdminHome/Config/module.xml deleted file mode 100644 index 3dde8cee..00000000 --- a/local/local/modules/HookAdminHome/Config/module.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - HookAdminHome\HookAdminHome - - Displays the default blocks on the homepage of the administration - - - Affiche les blocs par défaut sur la page d'accueil de l'administration - - - en_US - fr_FR - - 2.3.4 - - - Gilles Bourgeat - gilles@thelia.net - - - Franck Allimant - CQFDev - franck@cqfdev.fr - www.cqfdev.fr - - - classic - 2.2.0 - prod - diff --git a/local/local/modules/HookAdminHome/Config/routing.xml b/local/local/modules/HookAdminHome/Config/routing.xml deleted file mode 100644 index a36010d7..00000000 --- a/local/local/modules/HookAdminHome/Config/routing.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - HookAdminHome\Controller\HomeController::loadStatsAjaxAction - - - - HookAdminHome\Controller\HomeController::blockMonthSalesStatistics - \d+ - \d+ - - - - HookAdminHome\Controller\HomeController::processTemplateAction - ajax/thelia_news_feed - 1 - - - diff --git a/local/local/modules/HookAdminHome/Controller/HomeController.php b/local/local/modules/HookAdminHome/Controller/HomeController.php deleted file mode 100644 index e3fdde8b..00000000 --- a/local/local/modules/HookAdminHome/Controller/HomeController.php +++ /dev/null @@ -1,154 +0,0 @@ - - */ -class HomeController extends BaseAdminController -{ - /** - * Key prefix for stats cache - */ - const STATS_CACHE_KEY = "stats"; - - const RESOURCE_CODE = "admin.home"; - - public function loadStatsAjaxAction() - { - if (null !== $response = $this->checkAuth(self::RESOURCE_CODE, array(), AccessManager::VIEW)) { - return $response; - } - - $cacheExpire = ConfigQuery::getAdminCacheHomeStatsTTL(); - - /** @var AdapterInterface $cacheAdapter */ - $cacheAdapter = $this->container->get('thelia.cache'); - - $month = (int) $this->getRequest()->query->get('month', date('m')); - $year = (int) $this->getRequest()->query->get('year', date('Y')); - - $cacheKey = self::STATS_CACHE_KEY . "_" . $month . "_" . $year; - - $cacheItem = $cacheAdapter->getItem($cacheKey); - - // force flush - if ($this->getRequest()->query->get('flush', "0")) { - $cacheAdapter->deleteItem($cacheItem); - } - - if (!$cacheItem->isHit()) { - $data = $this->getStatus($month, $year); - - $cacheItem->set(json_encode($data)); - $cacheItem->expiresAfter($cacheExpire); - - if ($cacheExpire) { - $cacheAdapter->save($cacheItem); - } - } - - return $this->jsonResponse($cacheItem->get()); - } - - public function blockMonthSalesStatistics($month, $year) - { - $baseDate = sprintf("%04d-%02d", $year, $month); - - $startDate = "$baseDate-01"; - $endDate = date("Y-m-t", strtotime($startDate)); - - $prevMonthStartDate = date('Y-m-01', strtotime("$baseDate -1 month")); - $prevMonthEndDate = date("Y-m-t", strtotime($prevMonthStartDate)); - - return $this->render('block-month-sales-statistics', [ - 'startDate' => $startDate, - 'endDate' => $endDate, - 'prevMonthStartDate' => $prevMonthStartDate, - 'prevMonthEndDate' => $prevMonthEndDate, - ]); - } - - /** - * @param int $month - * @param int $year - * @return \stdClass - */ - protected function getStatus($month, $year) - { - $data = new \stdClass(); - - $data->title = $this->getTranslator()->trans( - "Stats on %month/%year", - ['%month' => $month, '%year' => $year], - HookAdminHome::DOMAIN_NAME - ); - - $data->series = []; - - /* sales */ - $data->series[] = $saleSeries = new \stdClass(); - $saleSeries->color = self::testHexColor('sales_color', '#adadad'); - $saleSeries->data = OrderQuery::getMonthlySaleStats($month, $year); - $saleSeries->valueFormat = "%1.2f " . Currency::getDefaultCurrency()->getSymbol(); - - /* new customers */ - $data->series[] = $newCustomerSeries = new \stdClass(); - $newCustomerSeries->color = self::testHexColor('customers_color', '#f39922'); - $newCustomerSeries->data = CustomerQuery::getMonthlyNewCustomersStats($month, $year); - $newCustomerSeries->valueFormat = "%d"; - - /* orders */ - $data->series[] = $orderSeries = new \stdClass(); - $orderSeries->color = self::testHexColor('orders_color', '#5cb85c'); - $orderSeries->data = OrderQuery::getMonthlyOrdersStats($month, $year); - $orderSeries->valueFormat = "%d"; - - /* first order */ - $data->series[] = $firstOrderSeries = new \stdClass(); - $firstOrderSeries->color = self::testHexColor('first_orders_color', '#5bc0de'); - $firstOrderSeries->data = OrderQuery::getFirstOrdersStats($month, $year); - $firstOrderSeries->valueFormat = "%d"; - - /* cancelled orders */ - $data->series[] = $cancelledOrderSeries = new \stdClass(); - $cancelledOrderSeries->color = self::testHexColor('cancelled_orders_color', '#d9534f'); - $cancelledOrderSeries->data = OrderQuery::getMonthlyOrdersStats($month, $year, array(5)); - $cancelledOrderSeries->valueFormat = "%d"; - - return $data; - } - - /** - * @param string $key - * @param string $default - * @return string hexadecimal color or default argument - */ - protected function testHexColor($key, $default) - { - $hexColor = $this->getRequest()->query->get($key, $default); - - return preg_match('/^#[a-f0-9]{6}$/i', $hexColor) ? $hexColor : $default; - } -} diff --git a/local/local/modules/HookAdminHome/Hook/AdminHook.php b/local/local/modules/HookAdminHome/Hook/AdminHook.php deleted file mode 100644 index 309b6297..00000000 --- a/local/local/modules/HookAdminHome/Hook/AdminHook.php +++ /dev/null @@ -1,71 +0,0 @@ - - */ -class AdminHook extends BaseHook -{ - public function blockStatistics(HookRenderEvent $event) - { - $event->add($this->render('block-statistics.html')); - } - - public function blockStatisticsJs(HookRenderEvent $event) - { - $event->add($this->render('block-statistics-js.html')); - } - - public function blockSalesStatistics(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-sales-statistics.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-sales-statistics", - "title" => $this->trans("Sales statistics", [], HookAdminHome::DOMAIN_NAME), - "content" => $content - ]); - } - } - - public function blockNews(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-news.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-news", - "content" => $content - ]); - } - } - - public function blockTheliaInformation(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-thelia-information.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-thelia-information", - "title" => $this->trans("Thelia informations", [], HookAdminHome::DOMAIN_NAME), - "content" => $content - ]); - } - } -} diff --git a/local/local/modules/HookAdminHome/HookAdminHome.php b/local/local/modules/HookAdminHome/HookAdminHome.php deleted file mode 100644 index 1a403c0a..00000000 --- a/local/local/modules/HookAdminHome/HookAdminHome.php +++ /dev/null @@ -1,21 +0,0 @@ - 'إحصائيات عن الشهر و السنة %month/%year', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php deleted file mode 100644 index dafa0a35..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php +++ /dev/null @@ -1,11 +0,0 @@ - 'تم إحباط الطلبات', - 'Average cart' => 'متوسط العربة', - 'Categories' => 'الفئات', - 'Click here' => 'انقر هنا', - 'Current version' => 'النسخة الحالية', - 'Customers' => 'العملاء', - 'Dashboard' => 'لوحة المعلومات', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php deleted file mode 100644 index b1fe273d..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Aborted orders', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Lire la suite' => 'Lire la suite', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'Yesterday sales' => 'Yesterday sales', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/de_DE.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 07620ee9..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,30 +0,0 @@ - 'Abgebrochene Bestellungen', - 'Average cart' => 'Durchschnittlichen Warenkorb', - 'Categories' => 'Kategorien', - 'Click here' => 'Hier Klicken', - 'Current version' => 'Aktuelle Version', - 'Customers' => 'Kunden', - 'Dashboard' => 'Dashboard', - 'First orders' => 'Erste Bestellungen', - 'Latest version available' => 'Neueste Version verfügbar', - 'Lire la suite' => 'Weiterlesen', - 'Loading Thelia lastest news...' => 'THELIAs neuesten Nachrichten Laden ...', - 'Loading...' => 'Laden...', - 'New customers' => 'Neue Kunde', - 'Offline products' => 'Offline Produkte', - 'Online products' => 'Online Produkte', - 'Orders' => 'Bestellungen', - 'Overall sales' => 'Gesamtverkäufe', - 'Previous month sales' => 'Vorheriger Monat Verkäufe', - 'Previous year sales' => 'Vorheriges Jahr Verkäufe', - 'Products' => 'Produkte', - 'Sales' => 'Verkäufe', - 'Sales excluding shipping' => 'Verkäufe ohne Lieferung', - 'This month' => 'Diesen Monat', - 'This year' => 'Dieses Jahr', - 'Today' => 'Heute', - 'Yesterday sales' => 'Verkäufe von Gestern', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/en_US.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/en_US.php deleted file mode 100644 index 5f375765..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,33 +0,0 @@ - 'Aborted orders', - 'An error occurred while reading from JSON file' => 'An error occurred while reading from JSON file', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Read more' => 'Read more', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'YYYY-MM' => 'YYYY-MM', - 'Yesterday sales' => 'Yesterday sales', -); diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/es_ES.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/es_ES.php deleted file mode 100644 index 6537481f..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/es_ES.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Pedidos abandonados', - 'Average cart' => 'Carrito medio', - 'Categories' => 'Categorías', - 'Click here' => 'Haz clic aquí', - 'Current version' => 'Versión actual', - 'Customers' => 'Clientes', - 'Dashboard' => 'Panel de Control', - 'First orders' => 'Primeros pedidos', - 'Latest version available' => 'Última versión disponible', - 'Lire la suite' => 'Leer más', - 'Loading Thelia lastest news...' => 'Carregant Thelia últimes notícies ...', - 'Loading...' => 'Carregant ...', - 'New customers' => 'Nuevos clientes', - 'News' => 'Noticias', - 'Offline products' => 'Productos fuera de línea', - 'Online products' => 'Productos en línea', - 'Orders' => 'Pedidos', - 'Overall sales' => 'Ventas totales', - 'Previous month sales' => 'Ventas del mes anterior', - 'Previous year sales' => 'Ventas del año anterior', - 'Products' => 'Productos', - 'Sales' => 'Ventas', - 'Sales excluding shipping' => 'Ventas sin el envio', - 'This month' => 'Este mes', - 'This year' => 'Este año', - 'Today' => 'Hoy', - 'Yesterday sales' => 'Ventas de ayer', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 0d04da9d..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,33 +0,0 @@ - 'Paniers abandonnés', - 'An error occurred while reading from JSON file' => 'Désolé, une erreur s\'est produite pendant la récupération des données.', - 'Average cart' => 'Panier moyen', - 'Categories' => 'Rubriques', - 'Click here' => 'Cliquez ici', - 'Current version' => 'Version en cours', - 'Customers' => 'Clients', - 'Dashboard' => 'Tableau de bord', - 'First orders' => 'Premières commandes', - 'Latest version available' => 'Dernière version disponible', - 'Loading Thelia lastest news...' => 'Chargement des dernières information Thelia...', - 'Loading...' => 'Chargement...', - 'New customers' => 'Nouveaux clients', - 'News' => 'Actualités', - 'Offline products' => 'Produits hors ligne', - 'Online products' => 'Produits en ligne', - 'Orders' => 'Commandes', - 'Overall sales' => 'Total des ventes', - 'Previous month sales' => 'Ventes du mois précédent', - 'Previous year sales' => 'Ventes de l\'année précédente', - 'Products' => 'Produits', - 'Read more' => 'Lire la suite', - 'Sales' => 'Ventes', - 'Sales excluding shipping' => 'Ventes hors frais de port', - 'This month' => 'Ce mois', - 'This year' => 'Cette année', - 'Today' => 'Aujourd\'hui', - 'YYYY-MM' => 'MM/YYYY', - 'Yesterday sales' => 'Ventes de la veille', -); diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/it_IT.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/it_IT.php deleted file mode 100644 index de57bcf8..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Ordini annullati', - 'Average cart' => 'Carrello medio', - 'Categories' => 'Categorie', - 'Click here' => 'Clicca qui', - 'Current version' => 'Versione attuale', - 'Customers' => 'Clienti', - 'Dashboard' => 'Dashboard', - 'First orders' => 'Primi ordini', - 'Latest version available' => 'Ultima versione disponibile', - 'Lire la suite' => 'Per saperne di più', - 'Loading Thelia lastest news...' => 'Caricamento delle ultime notizie su Thelia...', - 'Loading...' => 'Caricamento...', - 'New customers' => 'Nuovi clienti', - 'News' => 'Notizie', - 'Offline products' => 'Prodotti non in linea', - 'Online products' => 'Prodotti online', - 'Orders' => 'Ordini', - 'Overall sales' => 'Vendite complessive', - 'Previous month sales' => 'Vendite del mese precedente', - 'Previous year sales' => 'Vendite dell\'anno precedente', - 'Products' => 'Prodotti', - 'Read more' => 'Per saperne di più', - 'Sales' => 'Vendite', - 'Sales excluding shipping' => 'Vendite escluse spese di spedizione', - 'This month' => 'Questo mese', - 'This year' => 'Quest\'anno', - 'Today' => 'Oggi', - 'Yesterday sales' => 'Vendite di ieri', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php deleted file mode 100644 index 7daaaee4..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Ordens abortadas', - 'Click here' => 'Clique aqui', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php deleted file mode 100644 index b1fe273d..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Aborted orders', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Lire la suite' => 'Lire la suite', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'Yesterday sales' => 'Yesterday sales', -]; diff --git a/local/local/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php b/local/local/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 6fcb84a3..00000000 --- a/local/local/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,31 +0,0 @@ - 'İptal edilen siparişler', - 'Average cart' => 'Sepet Ortalaması', - 'Categories' => 'Katogoriler', - 'Click here' => 'Buraya tıklayın', - 'Current version' => 'Güncel Sürüm', - 'Customers' => 'müşteriler', - 'Dashboard' => 'Kontrol paneli', - 'First orders' => 'İlk emir', - 'Latest version available' => 'En son yorum elde edilebilir', - 'Lire la suite' => 'Devamını okuyun', - 'Loading Thelia lastest news...' => 'Thelia yükleme son haberler...', - 'Loading...' => 'Yükleneniyor…...', - 'New customers' => 'Yeni Müşteriler', - 'News' => 'Yeni Haberler', - 'Offline products' => 'Çevrimdışı ürünler', - 'Online products' => 'Online Ürünler', - 'Orders' => 'siparişler', - 'Overall sales' => 'Genel satış', - 'Previous month sales' => 'Önceki ay satış', - 'Previous year sales' => 'Önceki yılın satış', - 'Products' => 'ürün', - 'Sales' => 'Satış', - 'Sales excluding shipping' => 'Nakliye hariç satış', - 'This month' => 'Bu Ay', - 'This year' => 'Bu yıl', - 'Today' => 'bugün', - 'Yesterday sales' => 'Dün satış', -]; diff --git a/local/local/modules/HookAdminHome/I18n/cs_CZ.php b/local/local/modules/HookAdminHome/I18n/cs_CZ.php deleted file mode 100644 index 2ff4e47b..00000000 --- a/local/local/modules/HookAdminHome/I18n/cs_CZ.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Sales statistics', - 'Stats on %month/%year' => 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', -]; diff --git a/local/local/modules/HookAdminHome/I18n/de_DE.php b/local/local/modules/HookAdminHome/I18n/de_DE.php deleted file mode 100644 index 4405c981..00000000 --- a/local/local/modules/HookAdminHome/I18n/de_DE.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Verkaufsstatistiken', - 'Stats on %month/%year' => 'Statistiken für %month/%year', - 'Thelia informations' => 'Thelias Informationen', -]; diff --git a/local/local/modules/HookAdminHome/I18n/en_US.php b/local/local/modules/HookAdminHome/I18n/en_US.php deleted file mode 100644 index a4d812ee..00000000 --- a/local/local/modules/HookAdminHome/I18n/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', - 'Sales statistics' => 'Sales statistics', -); diff --git a/local/local/modules/HookAdminHome/I18n/es_ES.php b/local/local/modules/HookAdminHome/I18n/es_ES.php deleted file mode 100644 index fabace8e..00000000 --- a/local/local/modules/HookAdminHome/I18n/es_ES.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Estadísticas de ventas', - 'Thelia informations' => 'información sobre Thelia', -]; diff --git a/local/local/modules/HookAdminHome/I18n/fr_FR.php b/local/local/modules/HookAdminHome/I18n/fr_FR.php deleted file mode 100644 index 1fe9d72d..00000000 --- a/local/local/modules/HookAdminHome/I18n/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Statistiques de vente', - 'Stats on %month/%year' => 'Statistiques pour %month/%year', - 'Thelia informations' => 'Informations Thelia', -]; diff --git a/local/local/modules/HookAdminHome/I18n/id_ID.php b/local/local/modules/HookAdminHome/I18n/id_ID.php deleted file mode 100644 index 8cbc43ab..00000000 --- a/local/local/modules/HookAdminHome/I18n/id_ID.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Stats on %month/%year', -]; diff --git a/local/local/modules/HookAdminHome/I18n/it_IT.php b/local/local/modules/HookAdminHome/I18n/it_IT.php deleted file mode 100644 index dcab80d9..00000000 --- a/local/local/modules/HookAdminHome/I18n/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Statistiche di vendita', - 'Thelia informations' => 'Thelia informazioni', -]; diff --git a/local/local/modules/HookAdminHome/I18n/ru_RU.php b/local/local/modules/HookAdminHome/I18n/ru_RU.php deleted file mode 100644 index 2ff4e47b..00000000 --- a/local/local/modules/HookAdminHome/I18n/ru_RU.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Sales statistics', - 'Stats on %month/%year' => 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', -]; diff --git a/local/local/modules/HookAdminHome/I18n/tr_TR.php b/local/local/modules/HookAdminHome/I18n/tr_TR.php deleted file mode 100644 index b8d17e2e..00000000 --- a/local/local/modules/HookAdminHome/I18n/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Satış istatistikleri', - 'Stats on %month/%year' => '%month/%year istatistikleri', - 'Thelia informations' => 'Thelia bilgi', -]; diff --git a/local/local/modules/HookAdminHome/LICENSE.txt b/local/local/modules/HookAdminHome/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookAdminHome/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookAdminHome/composer.json b/local/local/modules/HookAdminHome/composer.json deleted file mode 100644 index d5921a2c..00000000 --- a/local/local/modules/HookAdminHome/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-admin-home-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookAdminHome" - } -} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html b/local/local/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html deleted file mode 100644 index 59aa6ee5..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html +++ /dev/null @@ -1,29 +0,0 @@ -{* this template is loaded via Ajax in the login page, to prevent login page slowdown *} - -{* Set the default translation domain, that will be used by intl when the 'd' parameter is not set *} -{default_translation_domain domain='hookadminhome.bo.default'} - -
- {loop type="feed" name="thelia_feeds" url="http://thelia.net/feeds/?lang={$lang_code}" limit="3"} - -
- -
-
- {* we use unescape:"htmlall" to unescape var before truncate, to prevent a cut in the middel of an HTML entity, eg &ea... *} -

{$DESCRIPTION|strip_tags|unescape:"htmlall"|truncate:250:"...":true nofilter}

-
- -
-
- - {/loop} -
\ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css b/local/local/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css deleted file mode 100644 index 611f6228..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css +++ /dev/null @@ -1 +0,0 @@ -#block-information a{color:#8A8A8A}.stats{border-right:1px solid #f0f0f0;text-align:center}.stats:last-child{border-right:none}.stats h2{margin-top:0;margin-bottom:5px;font-size:30px}.stats p{margin-top:0;text-transform:uppercase;font-size:12px}@media (max-width:991px){.stats{margin-bottom:10px}.stats:nth-child(3){border-right:none}}.homepage #date-picker{text-align:center;} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less b/local/local/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less deleted file mode 100644 index a87eaab0..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less +++ /dev/null @@ -1,45 +0,0 @@ -@import "../../../../../../../../templates/backOffice/default/assets/less/bootstrap/variables.less"; -@import "../../../../../../../../templates/backOffice/default/assets/less/thelia/variables.less"; - -#block-information { - a { - color: #8A8A8A; - } -} - -.stats { - border-right: 1px solid @table-border-color; - text-align: center; - - &:last-child { - border-right: none; - } - - h2 { - margin-top: 0; - margin-bottom: 5px; - font-size: 30px; - } - - p { - margin-top: 0; - text-transform: uppercase; - font-size: @font-size-base - 1; // 12px - } -} - -@media (max-width: @screen-sm-max) { - .stats { - margin-bottom: 10px; - - &:nth-child(3) { - border-right: none; - } - } -} - -.homepage { - #date-picker { - text-align: center; - } -} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-information.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-information.html deleted file mode 100644 index 25f09269..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-information.html +++ /dev/null @@ -1,59 +0,0 @@ -{* Do not display shop information block if user none of the required authorizations *} - -{capture name="shop_information_block_content"} - {loop type="auth" name="can_view" role="ADMIN" resource="admin.customer" access="VIEW"} - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.category" access="VIEW"} - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.product" access="VIEW"} - - - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} - - {/loop} -{/capture} - -{if trim($smarty.capture.shop_information_block_content) ne ""} -
-
- {$smarty.capture.shop_information_block_content nofilter} -
-
-{/if} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html deleted file mode 100644 index 57f72a60..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html +++ /dev/null @@ -1,48 +0,0 @@ -{loop type="currency" name="default-currency" default_only="1"} -{$defaultCurrency = $SYMBOL} -{/loop} - -{if empty($startDate)}{$startDate = 'this_month'}{/if} -{if empty($startDate)}{$startDate = 'this_month'}{/if} - -{if empty($prevMonthStartDate)}{$prevMonthStartDate = 'last_month'}{/if} -{if empty($prevMonthEndDate)}{$prevMonthEndDate = 'last_month'}{/if} - -
- - - - - - - - - - - - - - - - - - - - - - - -
{intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate=$startDate endDate=$endDate} symbol=$defaultCurrency}
{intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate=$startDate endDate=$endDate includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
{intl l="Previous month sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate=$prevMonthStartDate endDate=$prevMonthEndDate} symbol=$defaultCurrency}
{intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate=$startDate endDate=$endDate}} - {$orderCount} -
{intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
-
\ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-news-js.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-news-js.html deleted file mode 100644 index d18e1f92..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-news-js.html +++ /dev/null @@ -1,7 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} - -{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-news.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-news.html deleted file mode 100644 index 97bd6f99..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-news.html +++ /dev/null @@ -1,5 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} -
-
{intl l="Loading Thelia lastest news..." d='hookadminhome.bo.default'}
-
-{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html deleted file mode 100644 index 753173f8..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html +++ /dev/null @@ -1,100 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} - -{loop type="currency" name="default-currency" default_only="1"} -{$defaultCurrency = $SYMBOL} -{/loop} -
-
-
- - - - - - - - - - - - - - - - - - - - - - - -
{intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="today" endDate="today"} symbol=$defaultCurrency}
{intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate="today" endDate="today" includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
{intl l="Yesterday sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="yesterday" endDate="yesterday"} symbol=$defaultCurrency}
{intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate="today" endDate="today"}} - {$orderCount} -
{intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
-
-
- -
- {include file="block-month-sales-statistics.html"} -
- -
-
- - - - - - - - - - - - - - - - - - - - - - - -
{intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="this_year" endDate="this_year"} symbol=$defaultCurrency}
{intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate="this_year" endDate="this_year" includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
{intl l="Previous year sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="last_year" endDate="last_year"} symbol=$defaultCurrency}
{intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate="this_year" endDate="this_year"}} - {$orderCount} -
{intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
-
-
-
-{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html deleted file mode 100644 index b346c47d..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics.html deleted file mode 100644 index e29e7135..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-statistics.html +++ /dev/null @@ -1,34 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} -
- -
- {intl l='Dashboard' d='hookadminhome.bo.default'} -
- - - - - - - -
-
- -
-
- - - - - -
-
- -
- -
-
-
- -
-{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html b/local/local/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html deleted file mode 100644 index d31df8b4..00000000 --- a/local/local/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html +++ /dev/null @@ -1,20 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} -
- - - - - - - - - - - - - - - -
{intl l="Current version" d='hookadminhome.bo.default'}{$THELIA_VERSION}
{intl l="Latest version available"}{intl l="Loading..." d='hookadminhome.bo.default'}
{intl l="News"}{intl l="Click here" d='hookadminhome.bo.default'}
-
-{/loop} \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/Config/config.xml b/local/local/modules/HookAnalytics/Config/config.xml deleted file mode 100644 index 57a6cb0f..00000000 --- a/local/local/modules/HookAnalytics/Config/config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -
- - - - - - - - - - - - - \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/Config/module.xml b/local/local/modules/HookAnalytics/Config/module.xml deleted file mode 100644 index fddad541..00000000 --- a/local/local/modules/HookAnalytics/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookAnalytics\HookAnalytics - - Analytics (Google) - - - Statistiques (Google) - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookAnalytics/Config/routing.xml b/local/local/modules/HookAnalytics/Config/routing.xml deleted file mode 100644 index 269697d7..00000000 --- a/local/local/modules/HookAnalytics/Config/routing.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HookAnalytics\Controller\Configuration::saveAction - - - diff --git a/local/local/modules/HookAnalytics/Controller/Configuration.php b/local/local/modules/HookAnalytics/Controller/Configuration.php deleted file mode 100644 index dc083f55..00000000 --- a/local/local/modules/HookAnalytics/Controller/Configuration.php +++ /dev/null @@ -1,57 +0,0 @@ - - */ -class Configuration extends BaseAdminController { - - public function saveAction() - { - - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('hookanalytics'), AccessManager::UPDATE)) { - return $response; - } - - $form = new \HookAnalytics\Form\Configuration($this->getRequest()); - $resp = array( - "error" => 0, - "message" => "" - ); - $response=null; - - try { - $vform = $this->validateForm($form); - $data = $vform->getData(); - - ConfigQuery::write("hookanalytics_trackingcode", $data["trackingcode"], false, true); - - } catch (\Exception $e) { - $resp["error"] = 1; - $resp["message"] = $e->getMessage(); - } - - return JsonResponse::create($resp); - } - -} \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/Form/Configuration.php b/local/local/modules/HookAnalytics/Form/Configuration.php deleted file mode 100644 index 01db6191..00000000 --- a/local/local/modules/HookAnalytics/Form/Configuration.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class Configuration extends BaseForm { - - protected function buildForm() - { - $form = $this->formBuilder; - - $value = ConfigQuery::read("hookanalytics_trackingcode", ""); - $form->add( - "trackingcode", - "text", - array( - 'data' => $value, - 'label' => Translator::getInstance()->trans("Tracking Code"), - 'label_attr' => array( - 'for' => "trackingcode" - ), - ) - ); - - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "hookanalytics"; - } - - -} \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/Hook/FrontHook.php b/local/local/modules/HookAnalytics/Hook/FrontHook.php deleted file mode 100644 index 11bd3c6c..00000000 --- a/local/local/modules/HookAnalytics/Hook/FrontHook.php +++ /dev/null @@ -1,33 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainHeadBottom(HookRenderEvent $event) - { - $value = trim(ConfigQuery::read("hookanalytics_trackingcode", "")); - if ("" != $value){ - $event->add($value); - } - } -} \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/HookAnalytics.php b/local/local/modules/HookAnalytics/HookAnalytics.php deleted file mode 100644 index 2636e381..00000000 --- a/local/local/modules/HookAnalytics/HookAnalytics.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Ein Fehler ist aufgetreten', - 'Edit your analytics configuration.' => 'Analytics-Konfiguration bearbeiten.', - 'Save' => 'Speichern', -]; diff --git a/local/local/modules/HookAnalytics/I18n/backOffice/default/en_US.php b/local/local/modules/HookAnalytics/I18n/backOffice/default/en_US.php deleted file mode 100644 index ef8b1f98..00000000 --- a/local/local/modules/HookAnalytics/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'An error occured', - 'Edit your analytics configuration.' => 'Edit your analytics configuration.', - 'Save' => 'Save', -); diff --git a/local/local/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php b/local/local/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 56712bd3..00000000 --- a/local/local/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Une erreur est survenue', - 'Edit your analytics configuration.' => 'Modifier la configuration des statistiques', - 'Save' => ' Enregistrer', -]; diff --git a/local/local/modules/HookAnalytics/I18n/backOffice/default/it_IT.php b/local/local/modules/HookAnalytics/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 0c59bda5..00000000 --- a/local/local/modules/HookAnalytics/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Salvare', -]; diff --git a/local/local/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php b/local/local/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 8e913080..00000000 --- a/local/local/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Bir hata meydana geldi', - 'Edit your analytics configuration.' => 'Analytics yapılandırmanızı düzenleyin.', - 'Save' => 'kaydet', -]; diff --git a/local/local/modules/HookAnalytics/I18n/de_DE.php b/local/local/modules/HookAnalytics/I18n/de_DE.php deleted file mode 100644 index e1b30511..00000000 --- a/local/local/modules/HookAnalytics/I18n/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Tracking-Code', -]; diff --git a/local/local/modules/HookAnalytics/I18n/en_US.php b/local/local/modules/HookAnalytics/I18n/en_US.php deleted file mode 100644 index ba8939d7..00000000 --- a/local/local/modules/HookAnalytics/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Tracking Code', -); diff --git a/local/local/modules/HookAnalytics/I18n/fr_FR.php b/local/local/modules/HookAnalytics/I18n/fr_FR.php deleted file mode 100644 index ab7c10b8..00000000 --- a/local/local/modules/HookAnalytics/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Code de suivi', -]; diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 938a9f4a..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS-Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'YouTube', -]; diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/en_US.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 534a4d03..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -); diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 7b64f075..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'Flux RSS', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 15298b70..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index b951272b..00000000 --- a/local/local/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Beslemesi', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookAnalytics/I18n/it_IT.php b/local/local/modules/HookAnalytics/I18n/it_IT.php deleted file mode 100644 index bcce8768..00000000 --- a/local/local/modules/HookAnalytics/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Codice di monitoraggio', -]; diff --git a/local/local/modules/HookAnalytics/I18n/tr_TR.php b/local/local/modules/HookAnalytics/I18n/tr_TR.php deleted file mode 100644 index 3e16a023..00000000 --- a/local/local/modules/HookAnalytics/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'İzleme Kodu', -]; diff --git a/local/local/modules/HookAnalytics/LICENSE.txt b/local/local/modules/HookAnalytics/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookAnalytics/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookAnalytics/composer.json b/local/local/modules/HookAnalytics/composer.json deleted file mode 100644 index efe5231d..00000000 --- a/local/local/modules/HookAnalytics/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-analytics-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookAnalytics" - } -} diff --git a/local/local/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js b/local/local/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index fe180bb7..00000000 --- a/local/local/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,29 +0,0 @@ -$(document).ready(function() { - $("#hookanalytics-form").on("submit", function(e, data){ - e.preventDefault(); - var form = $(this); - - $('body').append(''); - - $.ajax({ - url: form.attr('action'), - type: form.attr('method'), - data: form.serialize() - }).done(function(){ - $("#loading-event").remove(); - }) - .success(function(data) { - if (data.error != 0) { - $("#loading-event").remove(); - $('#hookanalytics-failed-body').html(data.message); - $("#hookanalytics-failed").modal("show"); - } - }) - .fail(function(jqXHR, textStatus, errorThrown){ - $("#loading-event").remove(); - $('#hookanalytics-failed-body').html(jqXHR.responseJSON.message); - $("#hookanalytics-failed").modal("show"); - }); - - }); -}); \ No newline at end of file diff --git a/local/local/modules/HookAnalytics/templates/backOffice/default/module_configuration.html b/local/local/modules/HookAnalytics/templates/backOffice/default/module_configuration.html deleted file mode 100644 index c80b88ab..00000000 --- a/local/local/modules/HookAnalytics/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -
-
- -
- {intl l='Edit your analytics configuration.'} -
- -
-
- - {form name="hookanalytics.configuration.form"} - - - {form_hidden_fields} - - {form_field field='trackingcode'} -
- - -
- {/form_field} - - - - {/form} - -
- -
- -
-
- - - - diff --git a/local/local/modules/HookCart/Config/config.xml b/local/local/modules/HookCart/Config/config.xml deleted file mode 100644 index f8c3dce8..00000000 --- a/local/local/modules/HookCart/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/local/modules/HookCart/Config/module.xml b/local/local/modules/HookCart/Config/module.xml deleted file mode 100644 index d01aadf0..00000000 --- a/local/local/modules/HookCart/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCart\HookCart - - Block Cart - - - Bloc Panier - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookCart/HookCart.php b/local/local/modules/HookCart/HookCart.php deleted file mode 100644 index da8d0e9a..00000000 --- a/local/local/modules/HookCart/HookCart.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Warenkorb', - 'Checkout' => 'Zur Kasse', - 'Remove' => 'Entfernen', - 'View Cart' => 'Warenkorb anzeigen', - 'You have no items in your shopping cart.' => 'Sie haben keine Produkte im Warenkorb', -]; diff --git a/local/local/modules/HookCart/I18n/frontOffice/default/en_US.php b/local/local/modules/HookCart/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 3f99d2c5..00000000 --- a/local/local/modules/HookCart/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Cart', - 'Checkout' => 'Checkout', - 'Remove' => 'Remove', - 'View Cart' => 'View Cart', - 'You have no items in your shopping cart.' => 'You have no items in your shopping cart.', -); diff --git a/local/local/modules/HookCart/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookCart/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 088f21ef..00000000 --- a/local/local/modules/HookCart/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Panier', - 'Checkout' => 'Commande', - 'Remove' => 'Supprimer', - 'View Cart' => 'Voir le panier', - 'You have no items in your shopping cart.' => 'Vous n\'avez pas de produit dans votre panier.', -]; diff --git a/local/local/modules/HookCart/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookCart/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index dac05d5d..00000000 --- a/local/local/modules/HookCart/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Carrello', - 'Checkout' => 'Procedi all\'acquisto', - 'Remove' => 'Rimuovi', - 'View Cart' => 'Visualizza il carrello', - 'You have no items in your shopping cart.' => 'Non hai nessun prodotto nel tuo carrello.', -]; diff --git a/local/local/modules/HookCart/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookCart/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 04f4cc85..00000000 --- a/local/local/modules/HookCart/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Sepet', - 'Checkout' => 'Ödeme yap', - 'Remove' => 'Kaldır', - 'View Cart' => 'Sepeti Görüntüle', - 'You have no items in your shopping cart.' => 'Sepetinizde hiç ürün yok.', -]; diff --git a/local/local/modules/HookCart/LICENSE.txt b/local/local/modules/HookCart/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookCart/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookCart/composer.json b/local/local/modules/HookCart/composer.json deleted file mode 100644 index f56a5cb6..00000000 --- a/local/local/modules/HookCart/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-cart-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCart" - } -} diff --git a/local/local/modules/HookCart/templates/frontOffice/default/assets/css/styles.css b/local/local/modules/HookCart/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index a5df3814..00000000 --- a/local/local/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookCart/templates/frontOffice/default/mini-cart.html b/local/local/modules/HookCart/templates/frontOffice/default/mini-cart.html deleted file mode 100644 index aa128a08..00000000 --- a/local/local/modules/HookCart/templates/frontOffice/default/mini-cart.html +++ /dev/null @@ -1,81 +0,0 @@ -{ifloop rel="cartloop"} - -{/ifloop} -{elseloop rel="cartloop"} - -{/elseloop} diff --git a/local/local/modules/HookContact/Config/config.xml b/local/local/modules/HookContact/Config/config.xml deleted file mode 100644 index 5c54bc9c..00000000 --- a/local/local/modules/HookContact/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookContact/Config/module.xml b/local/local/modules/HookContact/Config/module.xml deleted file mode 100644 index e5e2b1da..00000000 --- a/local/local/modules/HookContact/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookContact\HookContact - - Block Contact - - - Bloc Contact - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookContact/Hook/FrontHook.php b/local/local/modules/HookContact/Hook/FrontHook.php deleted file mode 100644 index 8ed956f5..00000000 --- a/local/local/modules/HookContact/Hook/FrontHook.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -class FrontHook extends BaseHook -{ - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content) { - $event->add( - array( - "id" => "contact-footer-body", - "class" => "contact", - "title" => $this->trans("Contact", array(), "hookcontact"), - "content" => $content - ) - ); - } - } -} diff --git a/local/local/modules/HookContact/HookContact.php b/local/local/modules/HookContact/HookContact.php deleted file mode 100644 index 2b8df283..00000000 --- a/local/local/modules/HookContact/HookContact.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Kontakt', -]; diff --git a/local/local/modules/HookContact/I18n/en_US.php b/local/local/modules/HookContact/I18n/en_US.php deleted file mode 100644 index 55aea96d..00000000 --- a/local/local/modules/HookContact/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contact', -); diff --git a/local/local/modules/HookContact/I18n/fr_FR.php b/local/local/modules/HookContact/I18n/fr_FR.php deleted file mode 100644 index 896efb7c..00000000 --- a/local/local/modules/HookContact/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contact', -]; diff --git a/local/local/modules/HookContact/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookContact/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index d8eb50ed..00000000 --- a/local/local/modules/HookContact/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Nous trouver, Nous contacter', -]; diff --git a/local/local/modules/HookContact/I18n/it_IT.php b/local/local/modules/HookContact/I18n/it_IT.php deleted file mode 100644 index 11ee0ec2..00000000 --- a/local/local/modules/HookContact/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contatta', -]; diff --git a/local/local/modules/HookContact/I18n/tr_TR.php b/local/local/modules/HookContact/I18n/tr_TR.php deleted file mode 100644 index 31680df5..00000000 --- a/local/local/modules/HookContact/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'İletişim', -]; diff --git a/local/local/modules/HookContact/LICENSE.txt b/local/local/modules/HookContact/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookContact/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookContact/composer.json b/local/local/modules/HookContact/composer.json deleted file mode 100644 index 2ecdb22a..00000000 --- a/local/local/modules/HookContact/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-contact-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookContact" - } -} diff --git a/local/local/modules/HookContact/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookContact/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 9eea38b6..00000000 --- a/local/local/modules/HookContact/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,25 +0,0 @@ -
- -
    -
  • -
    - {config key="store_address1"} {config key="store_address2"} {config key="store_address3"}
    - {config key="store_zipcode"} - - {config key="store_city"} - {if {config key="store_country"} } - {loop type="country" name="address.country.title" id={config key="store_country"}}, {$TITLE}{/loop} - {/if} - -
    -
  • - {if {config key="store_phone"} } -
  • - {config key="store_phone"} -
  • - {/if} -
  • - {intl l="Find us, Contact us" d="hookcontact.fo.default"} -
  • -
-
diff --git a/local/local/modules/HookCurrency/Config/config.xml b/local/local/modules/HookCurrency/Config/config.xml deleted file mode 100644 index 1b5deb78..00000000 --- a/local/local/modules/HookCurrency/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookCurrency/Config/module.xml b/local/local/modules/HookCurrency/Config/module.xml deleted file mode 100644 index e71a5278..00000000 --- a/local/local/modules/HookCurrency/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCurrency\HookCurrency - - Block Currency - - - Bloc Devise - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookCurrency/HookCurrency.php b/local/local/modules/HookCurrency/HookCurrency.php deleted file mode 100644 index 63d66296..00000000 --- a/local/local/modules/HookCurrency/HookCurrency.php +++ /dev/null @@ -1,20 +0,0 @@ - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookCurrency/composer.json b/local/local/modules/HookCurrency/composer.json deleted file mode 100644 index 58767943..00000000 --- a/local/local/modules/HookCurrency/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-currency-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCurrency" - } -} diff --git a/local/local/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 0a8faad9..00000000 --- a/local/local/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookCustomer/Config/config.xml b/local/local/modules/HookCustomer/Config/config.xml deleted file mode 100644 index 63a29ce5..00000000 --- a/local/local/modules/HookCustomer/Config/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - diff --git a/local/local/modules/HookCustomer/Config/module.xml b/local/local/modules/HookCustomer/Config/module.xml deleted file mode 100644 index d4673f06..00000000 --- a/local/local/modules/HookCustomer/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCustomer\HookCustomer - - Block Customer - - - Bloc Client - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookCustomer/HookCustomer.php b/local/local/modules/HookCustomer/HookCustomer.php deleted file mode 100644 index eab3f96a..00000000 --- a/local/local/modules/HookCustomer/HookCustomer.php +++ /dev/null @@ -1,20 +0,0 @@ - 'E-mail Adresse', - 'Forgot your Password?' => 'Haben sir Ihr Passwort vergessen ?', - 'Log In!' => 'Log In!', - 'Log out!' => 'Log out!', - 'My Account' => 'Mein Kundenkonto', - 'Password' => 'Passwort', - 'Register' => 'Registrieren', - 'Register!' => 'Registrieren!', - 'Sign In' => 'Registrieren', -]; diff --git a/local/local/modules/HookCustomer/I18n/frontOffice/default/en_US.php b/local/local/modules/HookCustomer/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 102c3129..00000000 --- a/local/local/modules/HookCustomer/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Email address', - 'Forgot your Password?' => 'Forgot your Password?', - 'Log In!' => 'Log In!', - 'Log out!' => 'Log out!', - 'My Account' => 'My Account', - 'Password' => 'Password', - 'Register' => 'Register', - 'Register!' => 'Register!', - 'Sign In' => 'Sign In', -); diff --git a/local/local/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 8a899390..00000000 --- a/local/local/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Adresse e-mail', - 'Forgot your Password?' => 'Mot de passe oublié ?', - 'Log In!' => 'Se connecter', - 'Log out!' => 'Se déconnecter', - 'My Account' => 'Mon compte', - 'Password' => 'Mot de passe', - 'Register' => 'S\'inscrire', - 'Register!' => 'Enregistrez-vous !', - 'Sign In' => 'Se connecter', -]; diff --git a/local/local/modules/HookCustomer/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookCustomer/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index aba7ec5d..00000000 --- a/local/local/modules/HookCustomer/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Indirizzo email', - 'Forgot your Password?' => 'Hai dimenticato la password?', - 'Log In!' => 'Accedi!', - 'Log out!' => 'Esci!', - 'My Account' => 'Mio account', - 'Password' => 'Password', - 'Register' => 'Registrati', - 'Register!' => 'Registrati!', - 'Sign In' => 'Accedi', -]; diff --git a/local/local/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 83c6b6fd..00000000 --- a/local/local/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Eposta adresi', - 'Forgot your Password?' => 'Parolanızı mı unuttunuz?', - 'Log In!' => 'Oturum aç!', - 'Log out!' => 'Çıkış Yap!', - 'My Account' => 'Hesabım', - 'Password' => 'Parola', - 'Register' => 'Kaydol', - 'Register!' => 'Kayıt ol!', - 'Sign In' => 'Oturum Aç', -]; diff --git a/local/local/modules/HookCustomer/LICENSE.txt b/local/local/modules/HookCustomer/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookCustomer/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookCustomer/composer.json b/local/local/modules/HookCustomer/composer.json deleted file mode 100644 index d081b403..00000000 --- a/local/local/modules/HookCustomer/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-customer-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCustomer" - } -} diff --git a/local/local/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css b/local/local/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 13d84fd5..00000000 --- a/local/local/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,43 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookLang/Config/config.xml b/local/local/modules/HookLang/Config/config.xml deleted file mode 100644 index d30cb542..00000000 --- a/local/local/modules/HookLang/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookLang/Config/module.xml b/local/local/modules/HookLang/Config/module.xml deleted file mode 100644 index a6be2dcc..00000000 --- a/local/local/modules/HookLang/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookLang\HookLang - - Block Languages - - - Bloc langages - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookLang/HookLang.php b/local/local/modules/HookLang/HookLang.php deleted file mode 100644 index 2ab93ac2..00000000 --- a/local/local/modules/HookLang/HookLang.php +++ /dev/null @@ -1,20 +0,0 @@ - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookLang/composer.json b/local/local/modules/HookLang/composer.json deleted file mode 100644 index c5338646..00000000 --- a/local/local/modules/HookLang/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-lang-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookLang" - } -} diff --git a/local/local/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index a61a7a1e..00000000 --- a/local/local/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookLinks/Config/config.xml b/local/local/modules/HookLinks/Config/config.xml deleted file mode 100644 index 6036b5d0..00000000 --- a/local/local/modules/HookLinks/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookLinks/Config/module.xml b/local/local/modules/HookLinks/Config/module.xml deleted file mode 100644 index 09605839..00000000 --- a/local/local/modules/HookLinks/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookLinks\HookLinks - - Block Useful links - - - Bloc Liens utiles - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookLinks/Hook/FrontHook.php b/local/local/modules/HookLinks/Hook/FrontHook.php deleted file mode 100644 index 3f0a4829..00000000 --- a/local/local/modules/HookLinks/Hook/FrontHook.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "links-footer-body", - "class" => "default", - "title" => $this->trans("Useful links", array(), "hooklinks"), - "content" => $content - )); - } - } - -} \ No newline at end of file diff --git a/local/local/modules/HookLinks/HookLinks.php b/local/local/modules/HookLinks/HookLinks.php deleted file mode 100644 index 28e00f98..00000000 --- a/local/local/modules/HookLinks/HookLinks.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Nützliche Links', -]; diff --git a/local/local/modules/HookLinks/I18n/en_US.php b/local/local/modules/HookLinks/I18n/en_US.php deleted file mode 100644 index 531cd8a6..00000000 --- a/local/local/modules/HookLinks/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Useful links', -); diff --git a/local/local/modules/HookLinks/I18n/fr_FR.php b/local/local/modules/HookLinks/I18n/fr_FR.php deleted file mode 100644 index 95d22cf1..00000000 --- a/local/local/modules/HookLinks/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Liens utiles', -]; diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookLinks/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 1dc47f8d..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Warenkorb', - 'Checkout' => 'Zur Kasse', - 'Log out!' => 'Log out!', - 'Login' => 'Anmeldung', - 'My Account' => 'Mein Kundenkonto', - 'Register' => 'Registrieren', -]; diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/en_US.php b/local/local/modules/HookLinks/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 33a0bb71..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Cart', - 'Checkout' => 'Checkout', - 'Log out!' => 'Log out!', - 'Login' => 'Login', - 'My Account' => 'My Account', - 'Register' => 'Register', -); diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookLinks/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 8b8c6bf4..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Panier', - 'Checkout' => 'Commander', - 'Log out!' => 'Se déconnecter', - 'Login' => 'Connexion', - 'My Account' => 'Mon compte', - 'Register' => 'S\'inscrire', -]; diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookLinks/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index fca67d76..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Carrello', - 'Checkout' => 'Procedi all\'acquisto', - 'Log out!' => 'Esci!', - 'Login' => 'Login', - 'My Account' => 'Mio account', - 'Register' => 'Registrati', -]; diff --git a/local/local/modules/HookLinks/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookLinks/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 88c01521..00000000 --- a/local/local/modules/HookLinks/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Sepet', - 'Checkout' => 'Ödeme yap', - 'Log out!' => 'Çıkış Yap!', - 'Login' => 'Giriş yap', - 'My Account' => 'Hesabım', - 'Register' => 'Kaydol', -]; diff --git a/local/local/modules/HookLinks/I18n/it_IT.php b/local/local/modules/HookLinks/I18n/it_IT.php deleted file mode 100644 index 6120aafa..00000000 --- a/local/local/modules/HookLinks/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Link utili', -]; diff --git a/local/local/modules/HookLinks/I18n/tr_TR.php b/local/local/modules/HookLinks/I18n/tr_TR.php deleted file mode 100644 index 3f99d1ee..00000000 --- a/local/local/modules/HookLinks/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Faydalı Linkler', -]; diff --git a/local/local/modules/HookLinks/LICENSE.txt b/local/local/modules/HookLinks/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookLinks/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookLinks/composer.json b/local/local/modules/HookLinks/composer.json deleted file mode 100644 index 23abd78e..00000000 --- a/local/local/modules/HookLinks/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-links-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookLinks" - } -} diff --git a/local/local/modules/HookLinks/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookLinks/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 08607f06..00000000 --- a/local/local/modules/HookLinks/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookNavigation/Config/config.xml b/local/local/modules/HookNavigation/Config/config.xml deleted file mode 100644 index 1da4b2b4..00000000 --- a/local/local/modules/HookNavigation/Config/config.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -
- - - - - - - - - - - diff --git a/local/local/modules/HookNavigation/Config/module.xml b/local/local/modules/HookNavigation/Config/module.xml deleted file mode 100644 index dc090ec9..00000000 --- a/local/local/modules/HookNavigation/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookNavigation\HookNavigation - - Block Navigation - - - Bloc Menu - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookNavigation/Config/routing.xml b/local/local/modules/HookNavigation/Config/routing.xml deleted file mode 100644 index 2182aa3c..00000000 --- a/local/local/modules/HookNavigation/Config/routing.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - HookNavigation:HookNavigationConfig:default - - - HookNavigation:HookNavigationConfig:save - - diff --git a/local/local/modules/HookNavigation/Controller/HookNavigationConfigController.php b/local/local/modules/HookNavigation/Controller/HookNavigationConfigController.php deleted file mode 100644 index 04b7ca5f..00000000 --- a/local/local/modules/HookNavigation/Controller/HookNavigationConfigController.php +++ /dev/null @@ -1,75 +0,0 @@ - - OpenStudio - */ -class HookNavigationConfigController extends BaseAdminController -{ - public function defaultAction() - { - $bodyConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID); - $bottomConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID); - - $this->getSession()->getFlashBag()->set('bodyConfig', $bodyConfig); - $this->getSession()->getFlashBag()->set('bottomConfig', $bottomConfig); - - return $this->render('hooknavigation-configuration'); - } - - public function saveAction() - { - $baseForm = $this->createForm('hooknavigation.configuration'); - - $errorMessage = null; - - try { - $form = $this->validateForm($baseForm); - $data = $form->getData(); - - HookNavigation::setConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID, is_bool($data['footer_body_folder_id']) ? (int) ($data['footer_body_folder_id']) : $data['footer_body_folder_id']); - HookNavigation::setConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID, is_bool($data['footer_bottom_folder_id']) ? (int) ($data['footer_bottom_folder_id']) : $data['footer_bottom_folder_id']); - } catch (FormValidationException $ex) { - // Invalid data entered - $errorMessage = $this->createStandardFormValidationErrorMessage($ex); - } catch (\Exception $ex) { - // Any other error - $errorMessage = $this->getTranslator()->trans('Sorry, an error occurred: %err', ['%err' => $ex->getMessage()], [], HookNavigation::MESSAGE_DOMAIN); - } - - if (null !== $errorMessage) { - // Mark the form as with error - $baseForm->setErrorMessage($errorMessage); - - // Send the form and the error to the parser - $this->getParserContext() - ->addForm($baseForm) - ->setGeneralError($errorMessage) - ; - } else { - $this->getParserContext() - ->set('success', true) - ; - } - - return $this->defaultAction(); - } -} diff --git a/local/local/modules/HookNavigation/Form/HookNavigationConfigForm.php b/local/local/modules/HookNavigation/Form/HookNavigationConfigForm.php deleted file mode 100644 index 84221749..00000000 --- a/local/local/modules/HookNavigation/Form/HookNavigationConfigForm.php +++ /dev/null @@ -1,55 +0,0 @@ - - OpenStudio - */ -class HookNavigationConfigForm extends BaseForm -{ - public function getName() - { - return 'hooknavigation_configuration'; - } - - protected function buildForm() - { - $this->formBuilder - ->add( - 'footer_body_folder_id', - 'number', - [ - 'constraints' => [ - new NotBlank(), - ], - 'label' => $this->translator->trans('Folder in footer body', [], HookNavigation::MESSAGE_DOMAIN), - ] - ) - ->add( - 'footer_bottom_folder_id', - 'number', - [ - 'constraints' => [ - new NotBlank(), - ], - 'label' => $this->translator->trans('Folder in footer bottom', [], HookNavigation::MESSAGE_DOMAIN), - ] - ); - } -} diff --git a/local/local/modules/HookNavigation/Hook/FrontHook.php b/local/local/modules/HookNavigation/Hook/FrontHook.php deleted file mode 100644 index a108f3a0..00000000 --- a/local/local/modules/HookNavigation/Hook/FrontHook.php +++ /dev/null @@ -1,51 +0,0 @@ -, Etienne PERRIERE - OpenStudio - */ -class FrontHook extends BaseHook -{ - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $bodyConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID); - - $content = trim($this->render('main-footer-body.html', ['bodyFolderId' => $bodyConfig])); - if ('' != $content) { - $event->add(array( - 'id' => 'navigation-footer-body', - 'class' => 'links', - 'title' => $this->trans('Latest articles', array(), HookNavigation::MESSAGE_DOMAIN), - 'content' => $content, - )); - } - } - - public function onMainFooterBottom(HookRenderEvent $event) - { - $bottomConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID); - - $content = $this->render('main-footer-bottom.html', ['bottomFolderId' => $bottomConfig]); - $event->add($content); - } -} diff --git a/local/local/modules/HookNavigation/HookNavigation.php b/local/local/modules/HookNavigation/HookNavigation.php deleted file mode 100644 index a878b090..00000000 --- a/local/local/modules/HookNavigation/HookNavigation.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Kategorien', - 'Folder in footer body' => 'Ordner in Fußzeile', - 'Folder in footer bottom' => 'Ordner in Fußzeile', - 'Home' => 'Startseite', - 'HookNavigation configuration' => 'HookNavigation Konfiguration', - 'No articles currently' => 'Zur Zeit keine Artikel', - 'Toggle navigation' => 'Navigation umschalten', -]; diff --git a/local/local/modules/HookNavigation/I18n/backOffice/default/en_US.php b/local/local/modules/HookNavigation/I18n/backOffice/default/en_US.php deleted file mode 100644 index 88e66b06..00000000 --- a/local/local/modules/HookNavigation/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Configuration correctly saved', - 'Configure hooknavigation' => 'Configure hooknavigation', - 'Home' => 'Home', - 'HookNavigation configuration' => 'HookNavigation configuration', - 'Modules' => 'Modules', - 'Select a folder' => 'Select a folder', -); diff --git a/local/local/modules/HookNavigation/I18n/backOffice/default/fr_FR.php b/local/local/modules/HookNavigation/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 04211f37..00000000 --- a/local/local/modules/HookNavigation/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Configuration sauvegardée correctement', - 'Configure hooknavigation' => 'Configurer Bloc Menu', - 'Home' => 'Accueil', - 'HookNavigation configuration' => 'Configuration de Block Menu', - 'Modules' => 'Modules', - 'Select a folder' => 'Sélectionner un dossier', -]; diff --git a/local/local/modules/HookNavigation/I18n/backOffice/default/it_IT.php b/local/local/modules/HookNavigation/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 7b04d958..00000000 --- a/local/local/modules/HookNavigation/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Home', - 'Modules' => 'Moduli', - 'Select a folder' => 'Seleziona una cartella', -]; diff --git a/local/local/modules/HookNavigation/I18n/backOffice/default/tr_TR.php b/local/local/modules/HookNavigation/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 6816d794..00000000 --- a/local/local/modules/HookNavigation/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Katogoriler', - 'Folder in footer body' => 'Altbilgi vücut klasöründe', - 'Folder in footer bottom' => 'Altbilgi alt klasöründe', - 'Home' => 'Ana sayfa', - 'HookNavigation configuration' => 'HookNavigation yapılandırma', - 'No articles currently' => 'Hiç makale yok', - 'Toggle navigation' => 'Navigasyonu değiştir', -]; diff --git a/local/local/modules/HookNavigation/I18n/en_US.php b/local/local/modules/HookNavigation/I18n/en_US.php deleted file mode 100644 index cfcc1fe2..00000000 --- a/local/local/modules/HookNavigation/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Folder in footer body', - 'Folder in footer bottom' => 'Folder in footer bottom', - 'Latest articles' => 'Latest articles', - 'Sorry, an error occurred: %err' => 'Sorry, an error occurred: %err', -); diff --git a/local/local/modules/HookNavigation/I18n/fr_FR.php b/local/local/modules/HookNavigation/I18n/fr_FR.php deleted file mode 100644 index 28b686ad..00000000 --- a/local/local/modules/HookNavigation/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Dossier du pied de page', - 'Folder in footer bottom' => 'Dossier sous le pied de page', - 'Latest articles' => 'Derniers articles', - 'Sorry, an error occurred: %err' => 'Désolé, une erreur est survenue: %err', -]; diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index c32bbb2a..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Neueste Artikel', - 'No articles currently' => 'Zur Zeit keine Artikel', -]; diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/en_US.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/en_US.php deleted file mode 100644 index d63a3877..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Categories', - 'Home' => 'Home', - 'No articles currently' => 'No articles currently', - 'Toggle navigation' => 'Toggle navigation', -); diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 6d26f6f9..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Rubriques', - 'Home' => 'Accueil', - 'No articles currently' => 'Aucun article pour le moment', - 'Toggle navigation' => 'Basculer la navigation', -]; diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index c7165516..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Categorie', - 'Home' => 'Home', - 'No articles currently' => 'Attualmente non sono presenti articoli', - 'Toggle navigation' => 'Toggle navigation', -]; diff --git a/local/local/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index a76a2b01..00000000 --- a/local/local/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Son Makaleler', - 'No articles currently' => 'Hiç makale yok', -]; diff --git a/local/local/modules/HookNavigation/I18n/it_IT.php b/local/local/modules/HookNavigation/I18n/it_IT.php deleted file mode 100644 index 8ae2a7f1..00000000 --- a/local/local/modules/HookNavigation/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Ultimi articoli', -]; diff --git a/local/local/modules/HookNavigation/LICENSE.txt b/local/local/modules/HookNavigation/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookNavigation/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php b/local/local/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php deleted file mode 100644 index 925f6c5e..00000000 --- a/local/local/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php +++ /dev/null @@ -1,23 +0,0 @@ - - - -
-
- {intl l="Configure hooknavigation" d="hooknavigation.bo.default"} -
- -
-
- {if $success} -
- {intl l="Configuration correctly saved" d="hooknavigation.bo.default"} -
- {/if} - - {form name="hooknavigation.configuration"} - - {include "includes/inner-form-toolbar.html" hide_flags = 1 close_url={url path='/admin/modules'}} -
- - {form_field form=$form field="success_url"} - - {/form_field} - - {form_hidden_fields form=$form} - - {flash type="bodyConfig"} - {assign var='bodyConfig' value=$MESSAGE} - {/flash} - {flash type="bottomConfig"} - {assign var='bottomConfig' value=$MESSAGE} - {/flash} - - {form_field form=$form field="footer_body_folder_id"} -
- - - - - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
- {/form_field} - - {form_field form=$form field="footer_bottom_folder_id"} -
- - - - - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
- {/form_field} - - {include "includes/inner-form-toolbar.html" hide_flags = 1 close_url={url path='/admin/modules'} page_bottom = 1} - - {/form} -
-
-
-
-{/block} - -{block name="javascript-initialization"} -{/block} \ No newline at end of file diff --git a/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 4834c61d..00000000 --- a/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,17 +0,0 @@ -{ifloop rel="blog.articles"} - -{/ifloop} -{elseloop rel="blog.articles"} -
    -
  • {intl l="No articles currently" d="hooknavigation.fo.default"}
  • -
-{/elseloop} \ No newline at end of file diff --git a/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html b/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html deleted file mode 100644 index 80b298ef..00000000 --- a/local/local/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html b/local/local/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html deleted file mode 100644 index 62514618..00000000 --- a/local/local/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html +++ /dev/null @@ -1,56 +0,0 @@ - - -{* classic navbar without dropdown - -*} \ No newline at end of file diff --git a/local/local/modules/HookNewsletter/Config/config.xml b/local/local/modules/HookNewsletter/Config/config.xml deleted file mode 100644 index 9d66a2fe..00000000 --- a/local/local/modules/HookNewsletter/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookNewsletter/Config/module.xml b/local/local/modules/HookNewsletter/Config/module.xml deleted file mode 100644 index 19c5c441..00000000 --- a/local/local/modules/HookNewsletter/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookNewsletter\HookNewsletter - - Block Newsletter - - - Bloc Newsletter - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookNewsletter/Hook/FrontHook.php b/local/local/modules/HookNewsletter/Hook/FrontHook.php deleted file mode 100644 index 0d1b9688..00000000 --- a/local/local/modules/HookNewsletter/Hook/FrontHook.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "newsletter-footer-body", - "class" => "newsletter", - "title" => $this->trans("Newsletter", array(), "hooknewsletter"), - "content" => $content - )); - } - } -} \ No newline at end of file diff --git a/local/local/modules/HookNewsletter/HookNewsletter.php b/local/local/modules/HookNewsletter/HookNewsletter.php deleted file mode 100644 index 887b4a07..00000000 --- a/local/local/modules/HookNewsletter/HookNewsletter.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Newsletter', -]; diff --git a/local/local/modules/HookNewsletter/I18n/en_US.php b/local/local/modules/HookNewsletter/I18n/en_US.php deleted file mode 100644 index eeea5e3d..00000000 --- a/local/local/modules/HookNewsletter/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Newsletter', -); diff --git a/local/local/modules/HookNewsletter/I18n/fr_FR.php b/local/local/modules/HookNewsletter/I18n/fr_FR.php deleted file mode 100644 index 67c6b531..00000000 --- a/local/local/modules/HookNewsletter/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Lettre d\'information', -]; diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 9de40b6a..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,8 +0,0 @@ - 'E-mail Adresse', - 'Sign up to receive our latest news.' => 'Abonnieren Sie unseren Newsletter.', - 'Subscribe' => 'Abonnieren', - 'Your email address' => 'Ihre E-Mail-Adresse', -]; diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/en_US.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 68f5056a..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Email address', - 'Sign up to receive our latest news.' => 'Sign up to receive our latest news.', - 'Subscribe' => 'Subscribe', - 'Your email address' => 'Your email address', -); diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 17819d1f..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Adresse e-mail', - 'Sign up to receive our latest news.' => 'Enregistrez vous pour recevoir nos dernières nouvelles.', - 'Subscribe' => 'Inscription', - 'Your email address' => 'Votre adresse email', -]; diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 563e28bd..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Indirizzo email', - 'Subscribe' => 'Abbonati', -]; diff --git a/local/local/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index dcc2918f..00000000 --- a/local/local/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Eposta adresi', - 'Sign up to receive our latest news.' => 'En yeni haberleri almak için kaydolun.', - 'Subscribe' => 'Abone Ol', - 'Your email address' => 'E-posta adresiniz', -]; diff --git a/local/local/modules/HookNewsletter/I18n/it_IT.php b/local/local/modules/HookNewsletter/I18n/it_IT.php deleted file mode 100644 index 8e9757db..00000000 --- a/local/local/modules/HookNewsletter/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Newsletter', -]; diff --git a/local/local/modules/HookNewsletter/I18n/tr_TR.php b/local/local/modules/HookNewsletter/I18n/tr_TR.php deleted file mode 100644 index 6d9159e5..00000000 --- a/local/local/modules/HookNewsletter/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'E-Bülten', -]; diff --git a/local/local/modules/HookNewsletter/LICENSE.txt b/local/local/modules/HookNewsletter/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookNewsletter/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookNewsletter/composer.json b/local/local/modules/HookNewsletter/composer.json deleted file mode 100644 index 230b69d6..00000000 --- a/local/local/modules/HookNewsletter/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-newsletter-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookNewsletter" - } -} diff --git a/local/local/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index f60e082e..00000000 --- a/local/local/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,13 +0,0 @@ -

{intl l="Sign up to receive our latest news." d="hooknewsletter.fo.default"}

-{form name="thelia.front.newsletter"} -
-{form_hidden_fields} -{form_field field="email"} -
- - -
-{/form_field} - -
-{/form} \ No newline at end of file diff --git a/local/local/modules/HookProductsNew/Config/config.xml b/local/local/modules/HookProductsNew/Config/config.xml deleted file mode 100644 index 42df6539..00000000 --- a/local/local/modules/HookProductsNew/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookProductsNew/Config/module.xml b/local/local/modules/HookProductsNew/Config/module.xml deleted file mode 100644 index 0926cf41..00000000 --- a/local/local/modules/HookProductsNew/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookProductsNew\HookProductsNew - - Block New Products - - - Bloc Nouveaux Produits - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookProductsNew/HookProductsNew.php b/local/local/modules/HookProductsNew/HookProductsNew.php deleted file mode 100644 index 16a92d08..00000000 --- a/local/local/modules/HookProductsNew/HookProductsNew.php +++ /dev/null @@ -1,20 +0,0 @@ - '+ Alle anzeigen', - 'Latest' => 'Neuigkeiten', -]; diff --git a/local/local/modules/HookProductsNew/I18n/frontOffice/default/en_US.php b/local/local/modules/HookProductsNew/I18n/frontOffice/default/en_US.php deleted file mode 100644 index bd7cd7c7..00000000 --- a/local/local/modules/HookProductsNew/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ View All', - 'Latest' => 'Latest', -); diff --git a/local/local/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 297a7334..00000000 --- a/local/local/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Tout voir', - 'Latest' => 'Nouveautés', -]; diff --git a/local/local/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index f8284b5d..00000000 --- a/local/local/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Mostra tutto', - 'Latest' => 'Ultimi', -]; diff --git a/local/local/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 035d01d9..00000000 --- a/local/local/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Hepsini gör', - 'Latest' => 'En son', -]; diff --git a/local/local/modules/HookProductsNew/LICENSE.txt b/local/local/modules/HookProductsNew/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookProductsNew/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookProductsNew/composer.json b/local/local/modules/HookProductsNew/composer.json deleted file mode 100644 index 37573922..00000000 --- a/local/local/modules/HookProductsNew/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-products-new-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookProductsNew" - } -} diff --git a/local/local/modules/HookProductsNew/templates/frontOffice/default/home-body.html b/local/local/modules/HookProductsNew/templates/frontOffice/default/home-body.html deleted file mode 100644 index 11f6004a..00000000 --- a/local/local/modules/HookProductsNew/templates/frontOffice/default/home-body.html +++ /dev/null @@ -1,59 +0,0 @@ -{ifloop rel="product_new"} -
-
-

{intl l="Latest" d="hookproductsnew.fo.default"} {intl l="+ View All" d="hookproductsnew.fo.default"}

-
-
- -
-
-{/ifloop} diff --git a/local/local/modules/HookProductsOffer/Config/config.xml b/local/local/modules/HookProductsOffer/Config/config.xml deleted file mode 100644 index 00e4ebb5..00000000 --- a/local/local/modules/HookProductsOffer/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/local/modules/HookProductsOffer/Config/module.xml b/local/local/modules/HookProductsOffer/Config/module.xml deleted file mode 100644 index 4fe1d504..00000000 --- a/local/local/modules/HookProductsOffer/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookProductsOffer\HookProductsOffer - - Block Promo Products - - - Bloc Produits en promo - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookProductsOffer/HookProductsOffer.php b/local/local/modules/HookProductsOffer/HookProductsOffer.php deleted file mode 100644 index 2b04e7f8..00000000 --- a/local/local/modules/HookProductsOffer/HookProductsOffer.php +++ /dev/null @@ -1,20 +0,0 @@ - '+ Alle sehen', - 'Offers' => 'Angebote', -]; diff --git a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php b/local/local/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 9b4a1c61..00000000 --- a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ View All', - 'Offers' => 'Offers', -); diff --git a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 3dbf4a11..00000000 --- a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Tout voir', - 'Offers' => 'Promotions', -]; diff --git a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index ba350c21..00000000 --- a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Mostra tutto', - 'Offers' => 'Offerte', -]; diff --git a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index bc9c3e6b..00000000 --- a/local/local/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Hepsini gör', - 'Offers' => 'Teklifler', -]; diff --git a/local/local/modules/HookProductsOffer/LICENSE.txt b/local/local/modules/HookProductsOffer/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookProductsOffer/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookProductsOffer/composer.json b/local/local/modules/HookProductsOffer/composer.json deleted file mode 100644 index 8329abdb..00000000 --- a/local/local/modules/HookProductsOffer/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-products-offer-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookProductsOffer" - } -} diff --git a/local/local/modules/HookProductsOffer/templates/frontOffice/default/home-body.html b/local/local/modules/HookProductsOffer/templates/frontOffice/default/home-body.html deleted file mode 100644 index 462e775a..00000000 --- a/local/local/modules/HookProductsOffer/templates/frontOffice/default/home-body.html +++ /dev/null @@ -1,39 +0,0 @@ -{ifloop rel="current-sales"} -
- {loop name="current-sales" type="sale" limit="2"} -
- - -
-
    - {loop name="products_in_sale" type="product" limit="4" sale=$ID} - {include file="includes/single-product.html" colClass="col-md-3 col-sm-4" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"} - {/loop} -
-
-
- {/loop} -
-{/ifloop} -{* Display "regular" promos, if any, only if we don't have active sales *} - -{elseloop rel="current-sales"} -{ifloop rel="product_promo"} -
-
-

{intl l="Offers" d="hookproductsoffer.fo.default"} {intl l="+ View All" d="hookproductsoffer.fo.default"}

-
- -
-
    - {loop name="product_promo" type="product" limit="4" promo="yes"} - {include file="includes/single-product.html" colClass="col-md-3 col-sm-4" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"} - {/loop} -
-
-
-{/ifloop} -{/elseloop} diff --git a/local/local/modules/HookSearch/Config/config.xml b/local/local/modules/HookSearch/Config/config.xml deleted file mode 100644 index b5d60c60..00000000 --- a/local/local/modules/HookSearch/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/local/modules/HookSearch/Config/module.xml b/local/local/modules/HookSearch/Config/module.xml deleted file mode 100644 index 3ffe27ce..00000000 --- a/local/local/modules/HookSearch/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookSearch\HookSearch - - Block Search - - - Bloc Recherche - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookSearch/HookSearch.php b/local/local/modules/HookSearch/HookSearch.php deleted file mode 100644 index bbe6d752..00000000 --- a/local/local/modules/HookSearch/HookSearch.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Mindestens 2 Zeichen.', - 'Search' => 'Suchen', - 'Search a product' => 'Ein Produkt suchen', - 'Search...' => 'Suchen ...', -]; diff --git a/local/local/modules/HookSearch/I18n/frontOffice/default/en_US.php b/local/local/modules/HookSearch/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 5d94b36c..00000000 --- a/local/local/modules/HookSearch/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Minimum 2 characters.', - 'Search' => 'Search', - 'Search a product' => 'Search a product', - 'Search...' => 'Search...', -); diff --git a/local/local/modules/HookSearch/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookSearch/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index c115fb42..00000000 --- a/local/local/modules/HookSearch/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - '2 caractères minimum.', - 'Search' => 'Recherche', - 'Search a product' => 'Rechercher un produit', - 'Search...' => 'Rechercher...', -]; diff --git a/local/local/modules/HookSearch/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookSearch/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 65ad8706..00000000 --- a/local/local/modules/HookSearch/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Minimo 2 caratteri.', - 'Search' => 'Ricerca', - 'Search a product' => 'Ricerca un prodotto', - 'Search...' => 'Ricerca...', -]; diff --git a/local/local/modules/HookSearch/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookSearch/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index e9d75686..00000000 --- a/local/local/modules/HookSearch/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'En az 2 karakter.', - 'Search' => 'Arama', - 'Search a product' => 'Ürün ara', - 'Search...' => 'Arama...', -]; diff --git a/local/local/modules/HookSearch/LICENSE.txt b/local/local/modules/HookSearch/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookSearch/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookSearch/composer.json b/local/local/modules/HookSearch/composer.json deleted file mode 100644 index 9dfdcaf1..00000000 --- a/local/local/modules/HookSearch/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-search-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookSearch" - } -} diff --git a/local/local/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css b/local/local/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index 74b18399..00000000 --- a/local/local/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css +++ /dev/null @@ -1,11 +0,0 @@ -.header-container .search-container label, -.header-container .search-container .btn-search>span { - position:absolute; - width:1px; - height:1px; - margin:-1px; - padding:0; - overflow:hidden; - clip:rect(0 0 0 0); - border:0 -} \ No newline at end of file diff --git a/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html b/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html deleted file mode 100644 index 31c6afd2..00000000 --- a/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html b/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 40ba03a6..00000000 --- a/local/local/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/HookSocial/Config/config.xml b/local/local/modules/HookSocial/Config/config.xml deleted file mode 100644 index f151f07c..00000000 --- a/local/local/modules/HookSocial/Config/config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -
- - - - - - - - - - - - - diff --git a/local/local/modules/HookSocial/Config/module.xml b/local/local/modules/HookSocial/Config/module.xml deleted file mode 100644 index e2a69379..00000000 --- a/local/local/modules/HookSocial/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookSocial\HookSocial - - Block Social - - - Bloc Social - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/local/modules/HookSocial/Config/routing.xml b/local/local/modules/HookSocial/Config/routing.xml deleted file mode 100644 index 769a2c4a..00000000 --- a/local/local/modules/HookSocial/Config/routing.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HookSocial\Controller\Configuration::saveAction - - - diff --git a/local/local/modules/HookSocial/Controller/Configuration.php b/local/local/modules/HookSocial/Controller/Configuration.php deleted file mode 100644 index 9fef4bfa..00000000 --- a/local/local/modules/HookSocial/Controller/Configuration.php +++ /dev/null @@ -1,61 +0,0 @@ - - */ -class Configuration extends BaseAdminController -{ - public function saveAction() - { - - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('hooksocial'), AccessManager::UPDATE)) { - return $response; - } - - $form = new \HookSocial\Form\Configuration($this->getRequest()); - $resp = array( - "error" => 0, - "message" => "" - ); - $response=null; - - try { - $vform = $this->validateForm($form); - $data = $vform->getData(); - - foreach ($data as $name => $value) { - if (! $form->isTemplateDefinedHiddenFieldName($name)) { - ConfigQuery::write("hooksocial_" . $name, $value, false, true); - } - - Tlog::getInstance()->debug(sprintf("%s => %s", $name, $value)); - } - } catch (\Exception $e) { - $resp["error"] = 1; - $resp["message"] = $e->getMessage(); - } - - return JsonResponse::create($resp); - } -} \ No newline at end of file diff --git a/local/local/modules/HookSocial/Form/Configuration.php b/local/local/modules/HookSocial/Form/Configuration.php deleted file mode 100644 index 82d7418b..00000000 --- a/local/local/modules/HookSocial/Form/Configuration.php +++ /dev/null @@ -1,86 +0,0 @@ - - */ -class Configuration extends BaseForm { - - protected function buildForm() - { - $form = $this->formBuilder; - - $definitions = array( - array( - "id" => "twitter", - "label" => Translator::getInstance()->trans("Twitter username", array(), 'hooksocial') - ), - array( - "id" => "facebook", - "label" => Translator::getInstance()->trans("Facebook username", array(), 'hooksocial') - ), - array( - "id" => "google", - "label" => Translator::getInstance()->trans("Google + username", array(), 'hooksocial') - ), - array( - "id" => "instagram", - "label" => Translator::getInstance()->trans("Instagram username", array(), 'hooksocial') - ), - array( - "id" => "pinterest", - "label" => Translator::getInstance()->trans("Pinterest username", array(), 'hooksocial') - ), - array( - "id" => "youtube", - "label" => Translator::getInstance()->trans("Youtube URL", array(), 'hooksocial') - ), - array( - "id" => "rss", - "label" => Translator::getInstance()->trans("RSS URL", array(), 'hooksocial') - ) - ); - - foreach ($definitions as $field){ - $value = ConfigQuery::read("hooksocial_" . $field["id"], ""); - $form->add( - $field["id"], - "text", - array( - 'data' => $value, - 'label' => $field["label"], - 'label_attr' => array( - 'for' => $field["id"] - ), - ) - ); - } - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "hooksocial"; - } - - -} \ No newline at end of file diff --git a/local/local/modules/HookSocial/Hook/FrontHook.php b/local/local/modules/HookSocial/Hook/FrontHook.php deleted file mode 100644 index 770c2178..00000000 --- a/local/local/modules/HookSocial/Hook/FrontHook.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "social-footer-body", - "class" => "social", - "title" => $this->trans("Follow us", array(), "hooksocial"), - "content" => $content - )); - } - } -} \ No newline at end of file diff --git a/local/local/modules/HookSocial/HookSocial.php b/local/local/modules/HookSocial/HookSocial.php deleted file mode 100644 index 030e814d..00000000 --- a/local/local/modules/HookSocial/HookSocial.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Ein Fehler ist aufgetreten', - 'Save' => 'Speichern', -]; diff --git a/local/local/modules/HookSocial/I18n/backOffice/default/en_US.php b/local/local/modules/HookSocial/I18n/backOffice/default/en_US.php deleted file mode 100644 index 4ce9a282..00000000 --- a/local/local/modules/HookSocial/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'An error occured', - 'Edit your social accounts.' => 'Edit your social accounts.', - 'Save' => 'Save', -); diff --git a/local/local/modules/HookSocial/I18n/backOffice/default/fr_FR.php b/local/local/modules/HookSocial/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index e08beb6c..00000000 --- a/local/local/modules/HookSocial/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Une erreur est survenue', - 'Edit your social accounts.' => 'Modifier vos paramètres de réseaux sociaux.', - 'Save' => ' Enregistrer', -]; diff --git a/local/local/modules/HookSocial/I18n/backOffice/default/it_IT.php b/local/local/modules/HookSocial/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 3099d7ba..00000000 --- a/local/local/modules/HookSocial/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Modifica i tuoi account social.', - 'Save' => 'Salvare', -]; diff --git a/local/local/modules/HookSocial/I18n/backOffice/default/tr_TR.php b/local/local/modules/HookSocial/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index f4d5e02c..00000000 --- a/local/local/modules/HookSocial/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Bir hata meydana geldi', - 'Edit your social accounts.' => 'Sosyal hesaplarınızı düzenleyin.', - 'Save' => 'kaydet', -]; diff --git a/local/local/modules/HookSocial/I18n/de_DE.php b/local/local/modules/HookSocial/I18n/de_DE.php deleted file mode 100644 index e6c7fb51..00000000 --- a/local/local/modules/HookSocial/I18n/de_DE.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook Benutzername', - 'Follow us' => 'Folgen Sie uns', - 'Google + username' => 'Google+ Benutzername', - 'Instagram username' => 'Instagram Benutzername', - 'Pinterest username' => 'Pinterest Benutzername', - 'RSS URL' => 'RSS-URL', - 'Twitter username' => 'Twitter Benutzername', - 'Youtube URL' => 'YouTube-URL', -]; diff --git a/local/local/modules/HookSocial/I18n/en_US.php b/local/local/modules/HookSocial/I18n/en_US.php deleted file mode 100644 index dfb8eff8..00000000 --- a/local/local/modules/HookSocial/I18n/en_US.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook username', - 'Follow us' => 'Follow us', - 'Google + username' => 'Google + username', - 'Instagram username' => 'Instagram username', - 'Pinterest username' => 'Pinterest username', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Twitter username', - 'Youtube URL' => 'Youtube URL', -); diff --git a/local/local/modules/HookSocial/I18n/fr_FR.php b/local/local/modules/HookSocial/I18n/fr_FR.php deleted file mode 100644 index 6f08ba6f..00000000 --- a/local/local/modules/HookSocial/I18n/fr_FR.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Nom d\'utilisateur Facebook', - 'Follow us' => 'Suivez-nous', - 'Google + username' => 'Nom d\'utilisateur Google +', - 'Instagram username' => 'Nom d\'utilisateur Instagram', - 'Pinterest username' => 'Nom d\'utilisateur Pinterest', - 'RSS URL' => 'URL du flux RSS', - 'Twitter username' => 'Nom d\'utilisateur Twitter', - 'Youtube URL' => 'URL Youtube', -]; diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/de_DE.php b/local/local/modules/HookSocial/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 938a9f4a..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS-Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'YouTube', -]; diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/en_US.php b/local/local/modules/HookSocial/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 534a4d03..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -); diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/fr_FR.php b/local/local/modules/HookSocial/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 7b64f075..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'Flux RSS', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/it_IT.php b/local/local/modules/HookSocial/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 15298b70..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookSocial/I18n/frontOffice/default/tr_TR.php b/local/local/modules/HookSocial/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index b951272b..00000000 --- a/local/local/modules/HookSocial/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Beslemesi', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/local/modules/HookSocial/I18n/it_IT.php b/local/local/modules/HookSocial/I18n/it_IT.php deleted file mode 100644 index e1fd072a..00000000 --- a/local/local/modules/HookSocial/I18n/it_IT.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Nome utente Facebook', - 'Follow us' => 'Seguici', - 'Google + username' => 'Nome utente Google +', - 'Instagram username' => 'Nome utente Instagram', - 'Pinterest username' => 'Nome utente Pinterest', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Nome utente Twitter', - 'Youtube URL' => 'Youtube URL', -]; diff --git a/local/local/modules/HookSocial/I18n/tr_TR.php b/local/local/modules/HookSocial/I18n/tr_TR.php deleted file mode 100644 index c5ea54f4..00000000 --- a/local/local/modules/HookSocial/I18n/tr_TR.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook kullanıcı adı', - 'Follow us' => 'Bizi takip edin', - 'Google + username' => 'Google + kullanıcı adı', - 'Instagram username' => 'Google + kullanıcı adı', - 'Pinterest username' => 'Pinterest kullanıcı adı', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Twitter kullanıcı adı', - 'Youtube URL' => 'YouTube URL', -]; diff --git a/local/local/modules/HookSocial/LICENSE.txt b/local/local/modules/HookSocial/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/HookSocial/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/HookSocial/composer.json b/local/local/modules/HookSocial/composer.json deleted file mode 100644 index 4a18288a..00000000 --- a/local/local/modules/HookSocial/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-social-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookSocial" - } -} diff --git a/local/local/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js b/local/local/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index 5bf3dfcc..00000000 --- a/local/local/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,28 +0,0 @@ -$(document).ready(function() { - $("#hooksocial-form").on("submit", function(e, data){ - e.preventDefault(); - var form = $(this); - - $('body').append(''); - - $.ajax({ - url: form.attr('action'), - type: form.attr('method'), - data: form.serialize() - }).done(function(){ - $("#loading-event").remove(); - }) - .success(function(data) { - if (data.error != 0) { - $("#loading-event").remove(); - $('#hooksocial-failed-body').html(data.message); - $("#hooksocial-failed").modal("show"); - } - }) - .fail(function(jqXHR, textStatus, errorThrown){ - $("#loading-event").remove(); - $('#hooksocial-failed-body').html(jqXHR.responseJSON.message); - $("#hooksocial-failed").modal("show"); - }); - }); -}); \ No newline at end of file diff --git a/local/local/modules/HookSocial/templates/backOffice/default/module_configuration.html b/local/local/modules/HookSocial/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 61a48c13..00000000 --- a/local/local/modules/HookSocial/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -
-
- -
- {intl d='hooksocial.bo.default' l='Edit your social accounts.'} -
- -
-
- - {form name="hooksocial.configuration.form"} - - - {form_hidden_fields} - - {form_field field='twitter'} -
- - -
- {/form_field} - - {form_field field='facebook'} -
- - -
- {/form_field} - - {form_field field='google'} -
- - -
- {/form_field} - - {form_field field='instagram'} -
- - -
- {/form_field} - - {form_field field='pinterest'} -
- - -
- {/form_field} - - {form_field field='youtube'} -
- - -
- {/form_field} - - {form_field field='rss'} -
- - -
- {/form_field} - - - - {/form} - -
- -
- -
-
- - - - diff --git a/local/local/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css b/local/local/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/modules/HookSocial/templates/frontOffice/default/main-footer-body.html b/local/local/modules/HookSocial/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 095d7832..00000000 --- a/local/local/modules/HookSocial/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,86 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/TheliaMigrateCountry/Config/config.xml b/local/local/modules/TheliaMigrateCountry/Config/config.xml deleted file mode 100644 index 9a63718e..00000000 --- a/local/local/modules/TheliaMigrateCountry/Config/config.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - -
- - - - - - - - - - - - - - - - - - - diff --git a/local/local/modules/TheliaMigrateCountry/Config/routing.xml b/local/local/modules/TheliaMigrateCountry/Config/routing.xml deleted file mode 100644 index 111b7cb7..00000000 --- a/local/local/modules/TheliaMigrateCountry/Config/routing.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - TheliaMigrateCountry\Controller\MigrateController::migrateSystemAction - - - - TheliaMigrateCountry\Controller\MigrateController::doMigrateSystemAction - - - diff --git a/local/local/modules/TheliaMigrateCountry/Controller/MigrateController.php b/local/local/modules/TheliaMigrateCountry/Controller/MigrateController.php deleted file mode 100644 index 9b582845..00000000 --- a/local/local/modules/TheliaMigrateCountry/Controller/MigrateController.php +++ /dev/null @@ -1,175 +0,0 @@ - - */ -class MigrateController extends BaseAdminController -{ - protected $useFallbackTemplate = true; - - public function migrateSystemAction() - { - $response = $this->checkAuth(AdminResources::COUNTRY, array(), AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - // load country not migrated - $dataForm = []; - - $migratedCountries = json_decode(ConfigQuery::read('thelia_country_state_migration', '[]'), true); - - $countries = CountryQuery::create() - ->filterByHasStates(1) - ; - - /** @var Country $country */ - foreach ($countries as $country) { - $oldCountries = CountryQuery::create() - ->filterByHasStates(0) - ->filterByIsocode($country->getIsoCode()) - ->find() - ; - /** @var Country $oldCountry */ - foreach ($oldCountries as $oldCountry) { - if (!isset($migratedCountries[$oldCountry->getId()])) { - $dataForm[] = [ - 'migrate' => false, - 'country' => $oldCountry->getId(), - 'new_country' => $country->getId(), - 'new_state' => null - ]; - } - } - } - - // prepare form - $form = $this->createForm('thelia.admin.country.state.migration', 'form', ['migrations' => $dataForm]); - $this->getParserContext()->addForm($form); - - return $this->render( - 'countries-migrate', - [ - 'countriesMigrated' => $migratedCountries, - 'showForm' => count($dataForm) != 0 - ] - ); - } - - public function doMigrateSystemAction() - { - $response = $this->checkAuth(AdminResources::COUNTRY, array(), AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - $changeForm = $this->createForm('thelia.admin.country.state.migration', 'form'); - - try { - // Check the form against constraints violations - $form = $this->validateForm($changeForm, "POST"); - - // Get the form field values - $data = $form->getData(); - - foreach ($data['migrations'] as $migration) { - - if (!$migration['migrate']) { - continue; - } - - $changeEvent = new MigrateCountryEvent( - $migration['country'], - $migration['new_country'], - $migration['new_state'] - ); - - $this->dispatch(MigrateCountryEvents::MIGRATE_COUNTRY, $changeEvent); - - // memorize the migration - $migratedCountries = json_decode(ConfigQuery::read('thelia_country_state_migration', '[]'), true); - $migratedCountries[$changeEvent->getCountry()] = [ - 'country' => $changeEvent->getNewCountry(), - 'state' => $changeEvent->getNewState(), - 'counter' => $changeEvent->getCounter() - ]; - ConfigQuery::write('thelia_country_state_migration', json_encode($migratedCountries)); - - // message - $message = $this->getTranslator()->trans( - 'Country %id migrated to country (ID %country) and state (ID %state) (address: %address, tax rules: %tax, shipping zones: %zone)', - [ - '%id' => $changeEvent->getCountry(), - '%country' => $changeEvent->getNewCountry(), - '%state' => $changeEvent->getNewState(), - '%address' => $changeEvent->getCounter()[AddressTableMap::TABLE_NAME], - '%tax' => $changeEvent->getCounter()[TaxRuleCountryTableMap::TABLE_NAME], - '%zone' => $changeEvent->getCounter()[CountryAreaTableMap::TABLE_NAME] - ] - ); - - // add flash message - $this->getSession()->getFlashBag()->add('migrate', $message); - - // Log migration - $this->adminLogAppend( - AdminResources::COUNTRY, - AccessManager::UPDATE, - $message, - $changeEvent->getCountry() - ); - - } - - return $this->generateSuccessRedirect($changeForm); - } catch (FormValidationException $ex) { - // Form cannot be validated - $error_msg = $this->createStandardFormValidationErrorMessage($ex); - } - - if (false !== $error_msg) { - $this->setupFormErrorContext( - $this->getTranslator()->trans("Country migration"), - $error_msg, - $changeForm, - $ex - ); - - return $this->render( - 'countries-migrate', - [ - 'countriesMigrated' => $migratedCountries, - 'showForm' => true - ] - ); - } - } -} diff --git a/local/local/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php b/local/local/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php deleted file mode 100644 index 9271e117..00000000 --- a/local/local/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php +++ /dev/null @@ -1,155 +0,0 @@ - - */ -class MigrateCountryListener implements EventSubscriberInterface -{ - - public function migrateCountry(MigrateCountryEvent $event) - { - $counter = []; - - // update address - $counter[AddressTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // tax rules - $counter[TaxRuleCountryTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // shipping zone - $counter[CountryAreaTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // if it succeeds we toggle the visibility of old country and new - $this->setCountriesVisibility($event); - - $event->setCounter($counter); - - } - - protected function migrateAddress(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(AddressTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = AddressQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - protected function migrateTaxRules(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(TaxRuleCountryTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = TaxRuleCountryQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - protected function migrateShippingZones(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(CountryAreaTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = CountryAreaQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - private function setCountriesVisibility(MigrateCountryEvent $event) - { - $oldCountry = CountryQuery::create()->findPk($event->getCountry()); - - if (null !== $oldCountry) { - $oldCountry - ->setVisible(0) - ->save() - ; - } - - $newCountry = CountryQuery::create()->findPk($event->getNewCountry()); - if (null !== $newCountry) { - $newCountry - ->setVisible(1) - ->save() - ; - } - } - - /** - * @inheritdoc - */ - public static function getSubscribedEvents() - { - return [ - MigrateCountryEvents::MIGRATE_COUNTRY => 'migrateCountry' - ]; - } -} diff --git a/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php b/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php deleted file mode 100644 index 53613b09..00000000 --- a/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php +++ /dev/null @@ -1,117 +0,0 @@ - - */ -class MigrateCountryEvent extends ActionEvent -{ - /** @var int Old country Id */ - protected $country; - - /** @var int New country Id */ - protected $newCountry; - - /** @var int New state Id */ - protected $newState; - - /** @var array counter */ - protected $counter = []; - - /** - * MigrateCountryEvent constructor. - * @param $country - * @param int $newCountry - * @param int $newState - */ - public function __construct($country, $newCountry, $newState) - { - $this->country = $country; - $this->newCountry = $newCountry; - $this->newState = $newState; - } - - /** - * @return mixed - */ - public function getCountry() - { - return $this->country; - } - - /** - * @param mixed $country - */ - public function setCountry($country) - { - $this->country = $country; - return $this; - } - - /** - * @return int - */ - public function getNewCountry() - { - return $this->newCountry; - } - - /** - * @param int $newCountry - */ - public function setNewCountry($newCountry) - { - $this->newCountry = $newCountry; - return $this; - } - - /** - * @return int - */ - public function getNewState() - { - return $this->newState; - } - - /** - * @param int $newState - */ - public function setNewState($newState) - { - $this->newState = $newState; - return $this; - } - - /** - * @return array - */ - public function getCounter() - { - return $this->counter; - } - - /** - * @param array $counter - */ - public function setCounter($counter) - { - $this->counter = $counter; - return $this; - } -} diff --git a/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php b/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php deleted file mode 100644 index 3a1cdcb0..00000000 --- a/local/local/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -class MigrateCountryEvents -{ - const MIGRATE_COUNTRY = 'action.migrate-country.migrate'; -} diff --git a/local/local/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php b/local/local/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php deleted file mode 100644 index 9a352af9..00000000 --- a/local/local/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class CountryStateMigrationForm extends BaseForm -{ - - /** - * @inheritdocs - */ - protected function buildForm() - { - $this->formBuilder - ->add( - 'migrations', - 'collection', - [ - "type" => "country_state_migration", - "allow_add" => true, - "required" => true, - "cascade_validation" => true, - "constraints" => array( - new Count(["min" => 1]), - ), - ] - ) - ; - } - - public function getName() - { - return "thelia_country_state_migration"; - } -} diff --git a/local/local/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php b/local/local/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php deleted file mode 100644 index acbf43fa..00000000 --- a/local/local/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php +++ /dev/null @@ -1,114 +0,0 @@ - - */ -class CountryStateMigrationType extends AbstractTheliaType -{ - public function configureOptions(OptionsResolver $resolver) - { - $resolver->setDefaults( - [ - "cascade_validation" => true, - "constraints" => array( - new Callback([ - "methods" => array( - [$this, "checkStateId"], - ), - ]), - ), - ] - ); - } - - public function buildForm(FormBuilderInterface $builder, array $options) - { - $builder - ->add("migrate", "checkbox") - ->add( - "country", - "country_id" - ) - ->add( - "new_country", - "country_id" - ) - ->add( - "new_state", - "state_id", - [ - "constraints" => [], - ] - ) - ; - } - - public function checkStateId($value, ExecutionContextInterface $context) - { - - if ($value['migrate']) { - if (null !== $state = StateQuery::create()->findPk($value['new_state'])) { - if ($state->getCountryId() !== $value['new_country']) { - $context->addViolation( - Translator::getInstance()->trans( - "The state id '%id' does not belong to country id '%id_country'", - [ - '%id' => $value['new_state'], - '%id_country' => $value['new_country'] - ] - ) - ); - } - } else { - $context->addViolation( - Translator::getInstance()->trans( - "The state id '%id' doesn't exist", - ['%id' => $value['new_state']] - ) - ); - } - } - - } - - private function getRowData(ExecutionContextInterface $context) - { - $propertyPath = $context->getPropertyPath(); - $data = $this->getRowData($context); - - - } - - /** - * Returns the name of this type. - * - * @return string The name of this type - */ - public function getName() - { - return 'country_state_migration'; - } -} diff --git a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php b/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php deleted file mode 100644 index 35906899..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,31 +0,0 @@ - ' country ', - ' migrated to ' => ' migrated to ', - ' state ' => ' state ', - 'After the migration the old country will be hide and the new one shown' => 'After the migration the old country will be hide and the new one shown', - 'All States' => 'All States', - 'All countries have been migrated' => 'All countries have been migrated', - 'Configuration' => 'Configuration', - 'Countries' => 'Countries', - 'Countries migrated' => 'Countries migrated', - 'Countries to migrate' => 'Countries to migrate', - 'Country ' => 'Country ', - 'Country migration' => 'Country migration', - 'For USA and Canada the states already exists as countries, so you have to select the right state.' => 'For USA and Canada the states already exists as countries, so you have to select the right state.', - 'For other countries, you should decide to use state or not. ' => 'For other countries, you should decide to use state or not. ', - 'Home' => 'Home', - 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.' => 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.', - 'In version 2.3 of Thelia, the system of country has changed.' => 'In version 2.3 of Thelia, the system of country has changed.', - 'Migrate ?' => 'Migrate ?', - 'Migrate countries' => 'Migrate countries', - 'New country' => 'New country', - 'Now, countries has been splited in countries and states.' => 'Now, countries has been splited in countries and states.', - 'Old country' => 'Old country', - 'State' => 'State', - 'The migration proccess is tricky and couldn\'t be automated.' => 'The migration proccess is tricky and couldn\'t be automated.', - 'The migration will change the address, tax rules and shipping zones to match with the new system.' => 'The migration will change the address, tax rules and shipping zones to match with the new system.', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'The update proccess has created new countries (even if it exists) and associated states.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.', -); diff --git a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php b/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 70b7092b..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,31 +0,0 @@ - ' le pays', - ' migrated to ' => 'migré vers', - ' state ' => ' état ', - 'After the migration the old country will be hide and the new one shown' => 'Après la migration l\'ancien pays sera caché et le nouveau sera activé.', - 'All States' => 'Tous les états', - 'All countries have been migrated' => 'Tous les pays ont été migré', - 'Configuration' => 'Configuration', - 'Countries' => 'Pays', - 'Countries migrated' => 'Pays migrés', - 'Countries to migrate' => 'Pays à migrer.', - 'Country ' => 'Le pays', - 'Country migration' => 'Migration pays', - 'For USA and Canada the states already exists as countries, so you have to select the right state.' => 'Pour les USA et le Canada les états étaient déjà présents mais en tant que pays. Vous devrez donc choisir l\'état correspondant.', - 'For other countries, you should decide to use state or not. ' => 'Pour les autres pays, vous devrez choisir d\'utiliser ou pas les états.', - 'Home' => 'Accueil', - 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.' => 'Si vous voulez utiliser les nouveaux pays avec les états, vous devrez cocher la boîte à cocher \'migrer\' et sélectionner un état.', - 'In version 2.3 of Thelia, the system of country has changed.' => 'En version 2.3 de Thelia, le sysème des pays a changé.', - 'Migrate ?' => 'Migrer ?', - 'Migrate countries' => 'Migrer les pays', - 'New country' => 'Nouveau pays', - 'Now, countries has been splited in countries and states.' => 'Les pays ont été séparé en pays et états.', - 'Old country' => 'Ancien pays', - 'State' => 'État/région', - 'The migration proccess is tricky and couldn\'t be automated.' => 'Le processus de migration est compliqué et ne peux pas être automatisé', - 'The migration will change the address, tax rules and shipping zones to match with the new system.' => 'La migration changera les adresses, les règles de taxe et les zones de livraisons pour fonctionner avec le nouveau système.', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'Le processus de mise à jour a créé de nouveaux pays (même si il existait) et associé des états.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'Nous avons ajouté un état par \'défaut\' avec un nom vide. Par la suite, le client pourra le changer.', -]; diff --git a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php b/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 8aaa7bfe..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,19 +0,0 @@ - 'paese', - ' migrated to ' => ' migrato a ', - ' state ' => ' stato ', - 'All States' => 'Tutti gli Stati', - 'Configuration' => 'Impostazione', - 'Countries' => 'Paesi', - 'Country ' => 'Paese', - 'Country migration' => 'Migrazione del paese', - 'Home' => 'Home', - 'Migrate countries' => 'Migrazione dei paesi', - 'New country' => 'Nuovo paese', - 'Now, countries has been splited in countries and states.' => 'Ora, i paesi sono stati divisi in paesi e stati.', - 'State' => 'Stato', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'Il processo di aggiornamento ha creato nuovi paesi (anche esistenti) e stati associati.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'Abbiamo aggiunto uno stato di \'default\' con un nome vuoto come fallback. Il cliente avrà la possibilità di modificarlo in seguito.', -]; diff --git a/local/local/modules/TheliaMigrateCountry/I18n/en_US.php b/local/local/modules/TheliaMigrateCountry/I18n/en_US.php deleted file mode 100644 index 582bf0dc..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Country %id migrated to country (ID %country) and state (ID %state) (address: %address, tax rules: %tax, shipping zones: %zone)', - 'Country migration' => 'Country migration', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'The state id \'%id\' does not belong to country id \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'The state id \'%id\' doesn\'t exist', -); diff --git a/local/local/modules/TheliaMigrateCountry/I18n/fr_FR.php b/local/local/modules/TheliaMigrateCountry/I18n/fr_FR.php deleted file mode 100644 index e36af4c7..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Le pays %id migré vers le pays (ID %country) et état (ID %state) (adresses: %address, règles de taxe: %tax, zones de livraison: %zone)', - 'Country migration' => 'Migration pays', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'L\'état id \'%id\' n\'appartient pas au pays id \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'L\'état id \'%id\' n\'existe pas', -]; diff --git a/local/local/modules/TheliaMigrateCountry/I18n/it_IT.php b/local/local/modules/TheliaMigrateCountry/I18n/it_IT.php deleted file mode 100644 index ebcb746f..00000000 --- a/local/local/modules/TheliaMigrateCountry/I18n/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Paese %id migrato a paese (ID %country) e stato (ID %state) (Indirizzo: %address, norme fiscali: %tax, zone di spedizione: %zone)', - 'Country migration' => 'Migrazione del paese', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'L\'id dello stato \'%id\' non appartiene a id paese \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'L\'id dello stato \'%id\' non esiste', -]; diff --git a/local/local/modules/TheliaMigrateCountry/LICENSE.txt b/local/local/modules/TheliaMigrateCountry/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/TheliaMigrateCountry/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/TheliaMigrateCountry/Readme.md b/local/local/modules/TheliaMigrateCountry/Readme.md deleted file mode 100644 index ae6aee51..00000000 --- a/local/local/modules/TheliaMigrateCountry/Readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# Thelia Migrate Country - -This module allow you to migrate the system of country from Thelia version <= 2.2.* to version >= 2.3.0-alpha1. - -## Installation - -### Manually - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is TheliaMigrateCountry. -* Activate it in your thelia administration panel - -### Composer - -Add it in your main thelia composer.json file - -``` -composer require your-vendor/thelia-migrate-country-module:~1.0 -``` diff --git a/local/local/modules/TheliaMigrateCountry/TheliaMigrateCountry.php b/local/local/modules/TheliaMigrateCountry/TheliaMigrateCountry.php deleted file mode 100644 index b8772687..00000000 --- a/local/local/modules/TheliaMigrateCountry/TheliaMigrateCountry.php +++ /dev/null @@ -1,28 +0,0 @@ - - {intl l='Migrate countries'} - - -{/loop} \ No newline at end of file diff --git a/local/local/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html b/local/local/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html deleted file mode 100644 index 79b068a9..00000000 --- a/local/local/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html +++ /dev/null @@ -1,299 +0,0 @@ -{extends file="admin-layout.tpl"} - -{block name="no-return-functions"} - {$admin_current_location = 'configuration'} -{/block} - -{block name="page-title"}{intl l='Country migration'}{/block} - -{block name="check-resource"}admin.configuration.country{/block} -{block name="check-access"}update{/block} - -{block name="main-content"} -
- -
- - - -
-
-
- -
- {intl l='Migrate countries'} -
- -
-
- {intl l='In version 2.3 of Thelia, the system of country has changed.'} - {intl l='Now, countries has been split in countries and states.'}
- {intl l="The migration process is tricky and couldn't be automated."}

- {intl l="The update process has created new countries (even if it exists) and associated states."}
- {intl l="The migration will change the address, tax rules and shipping zones to match with the new system."}
- {intl l="After the migration the old country will be hide and the new one shown"}

- {intl l="For USA and Canada the states already exists as countries, so you have to select the right state."}
- {intl l="For other countries, you should decide to use state or not. "} - {intl l="If you want to use the new country with its states, you have to check the migrate checkbox and select a state."} - {intl l="We added a 'default' state with a blank name as a fallback. Customer will have the possibility to change it later."} -
-
- - {if $showForm} -
-
- - {form name="thelia.admin.country.state.migration"} - - {include - file = "includes/inner-form-toolbar.html" - hide_submit_buttons = false - - page_url = {url path="/admin/configuration/countries/migrate"} - close_url = {url path="/admin/configuration/countries"} - } - - {form_hidden_fields exclude="locale"} - - {render_form_field field='success_url' value={url path="/admin/configuration/countries/migrate"}} - - {if $form_error}
{$form_error_message}
{/if} - - {if {hasflash type="migrate"}} -
- {flash type="migrate"} -
{$MESSAGE}
- {/flash} -
- {/if} - -
- - - - - - - - - - - - {form_collection form=$form collection="migrations"} - {$newCountryId=0} - {$countryId=0} - - - - - - - {/form_collection} - -
- {intl l='Countries to migrate'} -
{intl l="Migrate ?"}{intl l="Old country"}{intl l="New country"}{intl l="State"}
- {form_collection_field form=$form row=$row field="migrate"} - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="country"} - {$countryId={$value}} - - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="new_country"} - {$newCountryId={$value}} - - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="new_state"} - {$ref[]={$label_attr.for}} - - - {/form_collection_field} -
-
- - - {/form} - -
-
- {else} -
- {intl l="All countries have been migrated"} -
- {/if} - -
-
- - {if count($countriesMigrated) > 0 } -
-
-
- {intl l='Countries migrated'} -
-
- - {foreach $countriesMigrated as $country => $new} -
-
- {intl l='Country '} - {intl l=' migrated to '} - {intl l=' country '} - - {intl l=' state '} - -
-
- {/foreach} -
- {/if} - -
- -
-
-{/block} - -{block name="javascript-initialization"} - {javascripts file='assets/js/bootstrap-select/bootstrap-select.js'} - - {/javascripts} - - {javascripts file='assets/js/libs/underscore-min.js'} - - {/javascripts} - - - - -{/block} - -{block name="javascript-last-call"} - {hook name="wysiwyg.js" location="wysiwyg-country-edit-js" } -{/block} \ No newline at end of file diff --git a/local/local/modules/TheliaSmarty/CREDITS.md b/local/local/modules/TheliaSmarty/CREDITS.md deleted file mode 100644 index 3e89e239..00000000 --- a/local/local/modules/TheliaSmarty/CREDITS.md +++ /dev/null @@ -1,40 +0,0 @@ -# Credits - -## Yii framework - -TheliaSmarty module uses a function that comes from [Yii framework](http://www.yiiframework.com/) - -License : - -The Yii framework is free software. It is released under the terms of -the following BSD License. - -Copyright © 2008 by Yii Software LLC (http://www.yiisoft.com) -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - * Neither the name of Yii Software LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/local/local/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php b/local/local/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php deleted file mode 100644 index 76514fff..00000000 --- a/local/local/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class RegisterParserPluginPass implements CompilerPassInterface -{ - /** - * You can modify the container here before it is dumped to PHP code. - * - * @param ContainerBuilder $container - * - * @api - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition("thelia.parser")) { - return; - } - - $smarty = $container->getDefinition("thelia.parser"); - - foreach ($container->findTaggedServiceIds("thelia.parser.register_plugin") as $id => $plugin) { - $smarty->addMethodCall("addPlugins", array(new Reference($id))); - } - - $smarty->addMethodCall("registerPlugins"); - } -} diff --git a/local/local/modules/TheliaSmarty/Config/config.xml b/local/local/modules/TheliaSmarty/Config/config.xml deleted file mode 100644 index 11f008fb..00000000 --- a/local/local/modules/TheliaSmarty/Config/config.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - %kernel.environment% - %kernel.debug% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %thelia.parser.loops% - - - - - - - - - - - - - - - - - - - - - - - - - - - - %thelia.parser.forms% - - - - - - - - - - %kernel.debug% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %kernel.debug% - - - - - - - - %kernel.debug% - - - - - diff --git a/local/local/modules/TheliaSmarty/Config/module.xml b/local/local/modules/TheliaSmarty/Config/module.xml deleted file mode 100644 index b6708542..00000000 --- a/local/local/modules/TheliaSmarty/Config/module.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - TheliaSmarty\TheliaSmarty - - Smarty template engine integration - - - Intégration du moteur de template Smarty - - - en_US - fr_FR - - 2.3.4 - - - Manuel Raynaud - manu@raynaud.io - - - classic - 2.2.0 - alpha - 1 - 1 - diff --git a/local/local/modules/TheliaSmarty/I18n/en_US.php b/local/local/modules/TheliaSmarty/I18n/en_US.php deleted file mode 100644 index 173d397f..00000000 --- a/local/local/modules/TheliaSmarty/I18n/en_US.php +++ /dev/null @@ -1,21 +0,0 @@ - '\'%type\' loop class should extends Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => 'A loop named \'%name\' already exists in the current scope.', - 'Loop type \'%type\' is not defined.' => 'Loop type \'%type\' is not defined.', - 'Missing \'name\' parameter in loop arguments' => 'Missing \'name\' parameter in loop arguments', - 'Missing \'rel\' parameter in forHook arguments' => 'Missing \'rel\' parameter in forHook arguments', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'Missing \'rel\' parameter in ifhook/elsehook arguments', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'Missing \'rel\' parameter in ifloop/elseloop arguments', - 'Missing \'rel\' parameter in page loop' => 'Missing \'rel\' parameter in page loop', - 'Missing \'type\' parameter in loop arguments' => 'Missing \'type\' parameter in loop arguments', - 'Missing \'type\' parameter in {count} loop arguments' => 'Missing \'type\' parameter in {count} loop arguments', - 'Missing \'type\' parameter in {hasflash} function arguments' => 'Missing \'type\' parameter in {hasflash} function arguments', - 'No pagination currently defined for loop name \'%name\'' => 'No pagination currently defined for loop name \'%name\'', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Please specify either \'path\' or \'file\' parameter in {url} function.', - 'Related hook name \'%name\' is not defined.' => 'Related hook name \'%name\' is not defined.', - 'Related loop name \'%name\'\' is not defined.' => 'Related loop name \'%name\'\' is not defined.', - 'Template file %file cannot be found.' => 'Template file %file cannot be found.', - 'The loop name \'%name\' is already defined in %className class' => 'The loop name \'%name\' is already defined in %className class', -); diff --git a/local/local/modules/TheliaSmarty/I18n/fr_FR.php b/local/local/modules/TheliaSmarty/I18n/fr_FR.php deleted file mode 100644 index 67b516db..00000000 --- a/local/local/modules/TheliaSmarty/I18n/fr_FR.php +++ /dev/null @@ -1,21 +0,0 @@ - 'La loop "%type" doit étendre la class Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => 'une loop avec comme nom \'%name\' existe déjà dans le scope courant', - 'Loop type \'%type\' is not defined.' => 'La loop de type "%type" n\'est pas défini', - 'Missing \'name\' parameter in loop arguments' => 'Le paramètre \'name\' est manquant dans la liste des arguments', - 'Missing \'rel\' parameter in forHook arguments' => 'Le paramètre \'rel\' est manquant dans les arguments de forHook', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'Le paramètre \'rel\' est manquant des arguments ifhook/elsehook', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'Paramètre \'rel\' manquant dans la liste des arguments d\'une loop ifloop/elseloop', - 'Missing \'rel\' parameter in page loop' => 'Paramètre \'rel\' manquant dans la loop page', - 'Missing \'type\' parameter in loop arguments' => 'Le paramètre \'type\' est manquant dans la liste des arguments', - 'Missing \'type\' parameter in {count} loop arguments' => 'Le paramètre \'type\' dans la loop {count} est manquant', - 'Missing \'type\' parameter in {hasflash} function arguments' => 'Le paramètre \'type\' est manquant dans', - 'No pagination currently defined for loop name \'%name\'' => 'Il n\'y a pas de pagination définie pour la loop \'%name\'', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Merci de spécifier le \'path\' ou le \'file\'.parameter dans la fonction {url}', - 'Related hook name \'%name\' is not defined.' => 'le hook ayat pour nom "%name" n\'est pas défini', - 'Related loop name \'%name\'\' is not defined.' => 'La loop ayant pour nom "%name" n\'est pas défini', - 'Template file %file cannot be found.' => 'Le fichier %s ne semble pas présent', - 'The loop name \'%name\' is already defined in %className class' => 'La loop "%name" est déjà définie dans la class %className', -]; diff --git a/local/local/modules/TheliaSmarty/I18n/tr_TR.php b/local/local/modules/TheliaSmarty/I18n/tr_TR.php deleted file mode 100644 index 05f834a0..00000000 --- a/local/local/modules/TheliaSmarty/I18n/tr_TR.php +++ /dev/null @@ -1,21 +0,0 @@ - '\'%type\' döngü sınıfını genişleten Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => '\'%name\' adlı bir döngü geçerli etki alanında bulunmaktadır.', - 'Loop type \'%type\' is not defined.' => 'Döngü türü \'%type\' tanımlı değil.', - 'Missing \'name\' parameter in loop arguments' => 'Döngü değişkenlerde \'ad\' parametresi eksik', - 'Missing \'rel\' parameter in forHook arguments' => 'ForHook değişkenlerde \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'İfhook/elsehook bağımsız değişkenleri \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'İfloop/elseloop bağımsız değişkenleri \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in page loop' => 'Sayfa döngü içinde \'rel\' parametresi eksik', - 'Missing \'type\' parameter in loop arguments' => '\'Tür\' parametresinde döngü bağımsız değişkenleri eksik', - 'Missing \'type\' parameter in {count} loop arguments' => '{count} döngü değişkenlerde \'type\' parametresi eksik', - 'Missing \'type\' parameter in {hasflash} function arguments' => '\'Tür\' parametresinde {hasflash} fonksiyon bağımsız değişkenleri eksik', - 'No pagination currently defined for loop name \'%name\'' => 'Şu anda döngü adı \'%name\' tanımlı hiçbir pagination', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Lütfen \'yol\' ya da \'dosya\' parametre {url} işlevinde belirtin.', - 'Related hook name \'%name\' is not defined.' => 'İlgili kanca adı \'%name\' tanımlı değil.', - 'Related loop name \'%name\'\' is not defined.' => 'İlgili kanca adı \'%name\' tanımlı değil.', - 'Template file %file cannot be found.' => 'Şablon dosyası %file bulunamadı.', - 'The loop name \'%name\' is already defined in %className class' => 'Döngü adı \'%name\' zaten %className sınıfında tanımlanmış', -]; diff --git a/local/local/modules/TheliaSmarty/LICENSE.txt b/local/local/modules/TheliaSmarty/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/TheliaSmarty/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/TheliaSmarty/Readme.md b/local/local/modules/TheliaSmarty/Readme.md deleted file mode 100644 index 96b8b328..00000000 --- a/local/local/modules/TheliaSmarty/Readme.md +++ /dev/null @@ -1,2 +0,0 @@ -## Smarty for Thelia - diff --git a/local/local/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php b/local/local/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php deleted file mode 100644 index 92c54a5c..00000000 --- a/local/local/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php +++ /dev/null @@ -1,97 +0,0 @@ -getParam($params, $name, $default); - - if (is_string($value)) { - $value = strtolower(trim($value)); - } - return $value; - } - - /** - * Get a function or block parameter value - * - * @param array $params the parameters array - * @param mixed $name as single parameter name, or an array of names. In this case, the first defined parameter is returned. Use this for aliases (context, ctx, c) - * @param mixed $default the defaut value if parameter is missing (default to null) - * @return mixed the parameter value, or the default value if it is not found. - */ - public function getParam($params, $name, $default = null) - { - if (is_array($name)) { - foreach ($name as $test) { - if (isset($params[$test])) { - return $params[$test]; - } - } - } elseif (isset($params[$name])) { - return $params[$name]; - } - - return $default; - } - - /** - * @return SmartyPluginDescriptor[] an array of SmartyPluginDescriptor - */ - abstract public function getPluginDescriptors(); -} diff --git a/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php b/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php deleted file mode 100644 index 64ec3db6..00000000 --- a/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php +++ /dev/null @@ -1,268 +0,0 @@ -web_root = $web_root; - $this->path_relative_to_web_root = $path_relative_to_web_root; - - $this->assetsManager = $assetsManager; - $this->assetsResolver = $assetsResolver; - } - - - /** - * Prepare current template assets - * - * @param string $assets_directory the assets directory in the template - * @param \Smarty_Internal_Template $smarty the smarty parser - */ - public function prepareAssets($assets_directory, \Smarty_Internal_Template $smarty) - { - // Be sure to use the proper path separator - if (DS != '/') { - $assets_directory = str_replace('/', DS, $assets_directory); - } - - // Set the current template assets directory - self::$assetsDirectory = $assets_directory; - - /** @var SmartyParser $smartyParser */ - $smartyParser = $smarty->smarty; - - $this->prepareTemplateAssets($smartyParser->getTemplateDefinition(), $assets_directory, $smartyParser); - } - - /** - * Prepare template assets - * - * @param TemplateDefinition $templateDefinition the template to process - * @param string $assets_directory the assets directory in the template - * @param \TheliaSmarty\Template\SmartyParser $smartyParser the current parser. - */ - protected function prepareTemplateAssets( - TemplateDefinition $templateDefinition, - $assets_directory, - SmartyParser $smartyParser - ) { - // Get the registered template directories for the current template path - $templateDirectories = $smartyParser->getTemplateDirectories($templateDefinition->getType()); - - if (isset($templateDirectories[$templateDefinition->getName()])) { - /* create assets foreach registered directory : main @ modules */ - foreach ($templateDirectories[$templateDefinition->getName()] as $key => $directory) { - // This is the assets directory in the template's tree - $tpl_path = $directory . DS . $assets_directory; - - $asset_dir_absolute_path = realpath($tpl_path); - - if (false !== $asset_dir_absolute_path) { - // If we're processing template assets (not module assets), - // we will use the $assets_directory as the assets parent dir. - if (SmartyParser::TEMPLATE_ASSETS_KEY == $key && ! null !== $assets_directory) { - $assetsWebDir = SmartyParser::TEMPLATE_ASSETS_KEY . DS . $assets_directory; - } else { - $assetsWebDir = $key; - } - - Tlog::getInstance()->addDebug( - "Preparing assets: source assets directory $asset_dir_absolute_path, " - . "web assets dir base: " . $this->web_root . $this->path_relative_to_web_root . ", " - . "template: ".$templateDefinition->getPath().", " - . "web asset key: $assetsWebDir (key=$key)" - ); - - $this->assetsManager->prepareAssets( - $asset_dir_absolute_path, - $this->web_root . $this->path_relative_to_web_root, - $templateDefinition->getPath(), - $key . DS . $assets_directory - ); - } - } - } - } - - /** - * Retrieve asset URL - * - * @param string $assetType js|css|image - * @param array $params Parameters - * - file File path in the default template - * - source module asset - * - filters filter to apply - * - debug - * - template if you want to load asset from another template - * @param \Smarty_Internal_Template $template Smarty Template - * - * @param bool $allowFilters if false, the 'filters' parameter is ignored - * @return string - */ - public function computeAssetUrl($assetType, $params, \Smarty_Internal_Template $template, $allowFilters = true) - { - $assetUrl = ""; - - $file = $params['file']; - - // The 'file' parameter is mandatory - if (empty($file)) { - throw new \InvalidArgumentException( - "The 'file' parameter is missing in an asset directive (type is '$assetType')" - ); - } - - $assetOrigin = isset($params['source']) ? $params['source'] : SmartyParser::TEMPLATE_ASSETS_KEY; - $filters = $allowFilters && isset($params['filters']) ? $params['filters'] : ''; - $debug = isset($params['debug']) ? trim(strtolower($params['debug'])) == 'true' : false; - $templateName = isset($params['template']) ? $params['template'] : false; - $failsafe = isset($params['failsafe']) ? $params['failsafe'] : false; - - Tlog::getInstance()->debug("Searching asset $file in source $assetOrigin, with template $templateName"); - - /** @var \TheliaSmarty\Template\SmartyParser $smartyParser */ - $smartyParser = $template->smarty; - - if (false !== $templateName) { - // We have to be sure that this external template assets have been properly prepared. - // We will assume the following: - // 1) this template have the same type as the current template, - // 2) this template assets have the same structure as the current template - // (which is in self::$assetsDirectory) - $currentTemplate = $smartyParser->getTemplateDefinition(); - - $templateDefinition = new TemplateDefinition( - $templateName, - $currentTemplate->getType() - ); - - /* Add this templates directory to the current list */ - $smartyParser->addTemplateDirectory( - $templateDefinition->getType(), - $templateDefinition->getName(), - THELIA_TEMPLATE_DIR . $templateDefinition->getPath(), - SmartyParser::TEMPLATE_ASSETS_KEY - ); - - $this->prepareTemplateAssets($templateDefinition, self::$assetsDirectory, $smartyParser); - } - - $assetSource = $this->assetsResolver->resolveAssetSourcePath($assetOrigin, $templateName, $file, $smartyParser); - - if (null !== $assetSource) { - $assetUrl = $this->assetsResolver->resolveAssetURL( - $assetOrigin, - $file, - $assetType, - $smartyParser, - $filters, - $debug, - self::$assetsDirectory, - $templateName - ); - } else { - // Log the problem - if ($failsafe) { - // The asset URL will be '' - Tlog::getInstance()->addWarning("Failed to find asset source file " . $params['file']); - } else { - throw new TheliaProcessException("Failed to find asset source file " . $params['file']); - } - } - - return $assetUrl; - } - - public function processSmartyPluginCall( - $assetType, - $params, - $content, - \Smarty_Internal_Template $template, - &$repeat - ) { - // Opening tag (first call only) - if ($repeat) { - $isfailsafe = false; - - $url = ''; - try { - // Check if we're in failsafe mode - if (isset($params['failsafe'])) { - $isfailsafe = $params['failsafe']; - } - - $url = $this->computeAssetUrl($assetType, $params, $template); - - if (empty($url)) { - $message = sprintf("Failed to get real path of asset %s without exception", $params['file']); - - Tlog::getInstance()->addWarning($message); - - // In debug mode, throw exception - if ($this->assetsManager->isDebugMode() && ! $isfailsafe) { - throw new TheliaProcessException($message); - } - } - } catch (\Exception $ex) { - Tlog::getInstance()->addWarning( - sprintf( - "Failed to get real path of asset %s with exception: %s", - $params['file'], - $ex->getMessage() - ) - ); - - // If we're in development mode, just retrow the exception, so that it will be displayed - if ($this->assetsManager->isDebugMode() && ! $isfailsafe) { - throw $ex; - } - } - $template->assign('asset_url', $url); - } elseif (isset($content)) { - return $content; - } - - return null; - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php b/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php deleted file mode 100644 index 34c248c5..00000000 --- a/local/local/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php +++ /dev/null @@ -1,223 +0,0 @@ -path_relative_to_web_root = ConfigQuery::read('asset_dir_from_web_root', 'assets'); - - $this->assetsManager = $assetsManager; - } - - /** - * Generate an asset URL - * - * @param string $source a module code, or SmartyParser::TEMPLATE_ASSETS_KEY - * @param string $file the file path, relative to a template base directory (e.g. assets/css/style.css) - * @param string $type the asset type, either 'css' or ' - * @param ParserInterface $parserInterface the current template parser - * @param array $filters the filters to pass to the asset manager - * @param bool $debug the debug mode - * @param string $declaredAssetsDirectory if not null, this is the assets directory declared in the {declare_assets} function of a template. - * @param mixed $sourceTemplateName A template name, of false. If provided, the assets will be searched in this template directory instead of the current one. - * @return mixed - */ - public function resolveAssetURL($source, $file, $type, ParserInterface $parserInterface, $filters = [], $debug = false, $declaredAssetsDirectory = null, $sourceTemplateName = false) - { - $url = ""; - - // Normalize path separator - $file = $this->fixPathSeparator($file); - - $fileRoot = $this->resolveAssetSourcePath($source, $sourceTemplateName, $file, $parserInterface); - - if (null !== $fileRoot) { - $templateDefinition = $parserInterface->getTemplateDefinition($sourceTemplateName); - - $url = $this->assetsManager->processAsset( - $fileRoot . DS . $file, - $fileRoot, - THELIA_WEB_DIR . $this->path_relative_to_web_root, - $templateDefinition->getPath(), - $source, // $this->getBaseWebAssetDirectory($source, $declaredAssetsDirectory), - URL::getInstance()->absoluteUrl($this->path_relative_to_web_root, null, URL::PATH_TO_FILE /* path only */), - $type, - $filters, - $debug - ); - } else { - Tlog::getInstance()->addError("Asset $file (type $type) was not found."); - } - - return $url; - } - - - /** - * Return an asset source file path. - * - * A system of fallback enables file overriding. It will look for the template : - * - in the current template in directory /modules/{module code}/ - * - in the module in the current template if it exists - * - in the module in the default template - * - * @param string $source a module code, or or SmartyParser::TEMPLATE_ASSETS_KEY - * @param string $templateName a template name, or false to use the current template - * @param string $fileName the filename - * @param ParserInterface $parserInterface the current template parser - * - * @return mixed the path to directory containing the file, or null if the file doesn't exists. - */ - public function resolveAssetSourcePath($source, $templateName, $fileName, ParserInterface $parserInterface) - { - $filePath = null; - - $templateDefinition = $parserInterface->getTemplateDefinition(false); - - // Get all possible directories to search - $paths = $this->getPossibleAssetSources( - $parserInterface->getTemplateDirectories($templateDefinition->getType()), - $templateName ?: $templateDefinition->getName(), - $source - ); - - // Normalize path separator if required (e.g., / becomes \ on windows) - $fileName = $this->fixPathSeparator($fileName); - - /* Absolute paths are not allowed. This may be a mistake, such as '/assets/...' instead of 'assets/...'. Forgive it. */ - $fileName = ltrim($fileName, DS); - - /* Navigating in the server's directory tree is not allowed :) */ - if (preg_match('!\.\.\\'.DS.'!', $fileName)) { - // This time, we will not forgive. - throw new \InvalidArgumentException("Relative paths are not allowed in assets names."); - } - - // Find the first occurrence of the file in the directories lists - foreach ($paths as $path) { - if ($this->filesExist($path, $fileName)) { - // Got it ! - $filePath = $path; - break; - } - } - - return $filePath; - } - - - /** - * Be sure that the pat separator of a pathname is always the platform path separator. - * - * @param string $path the iput path - * @return string the fixed path - */ - protected function fixPathSeparator($path) - { - if (DS != '/') { - $path = str_replace('/', DS, $path); - } - - return $path; - } - - /** - * Check if a file(s) exists in a directory - * - * @param string $dir the directory path - * @param string $file the file path. It can contain wildcard. eg: /path/*.css - * @return bool true if file(s) - */ - protected function filesExist($dir, $file) - { - if (!file_exists($dir)) { - return false; - } - - $full_path = rtrim($dir, DS) . DS . ltrim($file, DS); - - try { - $files = glob($full_path); - - $files_found = ! empty($files); - } catch (\Exception $ex) { - Tlog::getInstance()->addError($ex->getMessage()); - - $files_found = false; - } - - return $files_found; - } - - /** - * Get all possible directories from which the asset can be found. - * It returns an array of directories ordered by priority. - * - * @param array $directories all directories source available for the template type - * @param string $template the name of the template - * @param string $source the module code or SmartyParser::TEMPLATE_ASSETS_KEY - * @return array possible directories - */ - protected function getPossibleAssetSources($directories, $template, $source) - { - $paths = []; - - if (SmartyParser::TEMPLATE_ASSETS_KEY !== $source) { - // We're in a module. - - // First look into the current template in the right scope : frontOffice, backOffice, ... - // template should be overridden in : {template_path}/modules/{module_code}/{template_name} - if (isset($directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY])) { - $paths[] = - $directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY] - . DS - . self::MODULE_OVERRIDE_DIRECTORY_NAME . DS - . $source; - } - - // then in the implementation for the current template used in the module directory - if (isset($directories[$template][$source])) { - $paths[] = $directories[$template][$source]; - } - - // then in the default theme in the module itself - if (isset($directories[self::DEFAULT_TEMPLATE_NAME][$source])) { - $paths[] = $directories[self::DEFAULT_TEMPLATE_NAME][$source]; - } - } else { - $paths[] = $directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY]; - } - - return $paths; - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php b/local/local/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php deleted file mode 100644 index 41119ecf..00000000 --- a/local/local/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php +++ /dev/null @@ -1,22 +0,0 @@ - - */ -class SmartyPluginException extends \SmartyException -{ -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php b/local/local/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php deleted file mode 100644 index ed7b5125..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php +++ /dev/null @@ -1,172 +0,0 @@ - - */ -class AdminUtilities extends AbstractSmartyPlugin -{ - private $securityContext; - private $templateHelper; - - public function __construct(SecurityContext $securityContext, TemplateHelperInterface $templateHelper) - { - $this->securityContext = $securityContext; - $this->templateHelper = $templateHelper; - } - - protected function fetchSnippet($smarty, $templateName, $variablesArray) - { - $data = ''; - - $snippet_path = sprintf( - '%s/%s/%s.html', - THELIA_TEMPLATE_DIR, - $this->templateHelper->getActiveAdminTemplate()->getPath(), - $templateName - ); - - if (false !== $snippet_content = file_get_contents($snippet_path)) { - $smarty->assign($variablesArray); - - $data = $smarty->fetch(sprintf('string:%s', $snippet_content)); - } - - return $data; - } - - public function optionOffsetGenerator($params, &$smarty) - { - $label = $this->getParam($params, 'label', null); - - if (null !== $level = $this->getParam($params, [ 'l', 'level'], null)) { - $label = str_repeat(' ', 4 * $level) . $label; - } - - return $label; - } - - public function generatePositionChangeBlock($params, &$smarty) - { - // The required permissions - $resource = $this->getParam($params, 'resource'); - $module = $this->getParam($params, 'module'); - $access = $this->getParam($params, 'access'); - - // The base position change path - $path = $this->getParam($params, 'path'); - - // The URL parameter the object ID is assigned - $url_parameter = $this->getParam($params, 'url_parameter'); - - // The current object position - $position = $this->getParam($params, 'position'); - - // The object ID - $id = $this->getParam($params, 'id'); - - // The in place dition class - $in_place_edit_class = $this->getParam($params, 'in_place_edit_class'); - - /* - - {$POSITION} - - */ - - if ($this->securityContext->isGranted( - array("ADMIN"), - $resource === null ? array() : array($resource), - $module === null ? array() : array($module), - array($access) - ) - ) { - return $this->fetchSnippet($smarty, 'includes/admin-utilities-position-block', array( - 'admin_utilities_go_up_url' => URL::getInstance()->absoluteUrl($path, array('mode' => 'up', $url_parameter => $id)), - 'admin_utilities_in_place_edit_class' => $in_place_edit_class, - 'admin_utilities_object_id' => $id, - 'admin_utilities_current_position' => $position, - 'admin_utilities_go_down_url' => URL::getInstance()->absoluteUrl($path, array('mode' => 'down', $url_parameter => $id)) - )); - } else { - return $position; - } - } - - /** - * Generates the link of a sortable column header - * - * @param array $params - * @param unknown $smarty - * @return string no text is returned. - */ - public function generateSortableColumnHeader($params, &$smarty) - { - // The current order of the table - $current_order = $this->getParam($params, 'current_order'); - - // The column ascending order - $order = $this->getParam($params, 'order'); - - // The column descending order label - $reverse_order = $this->getParam($params, 'reverse_order'); - - // The order change path - $path = $this->getParam($params, 'path'); - - // The column label - $label = $this->getParam($params, 'label'); - - // The request parameter - $request_parameter_name = $this->getParam($params, 'request_parameter_name', 'order'); - - if ($current_order == $order) { - $sort_direction = 'up'; - $order_change = $reverse_order; - } elseif ($current_order == $reverse_order) { - $sort_direction = 'down'; - $order_change = $order; - } else { - $order_change = $order; - } - - return $this->fetchSnippet($smarty, 'includes/admin-utilities-sortable-column-header', array( - 'admin_utilities_sort_direction' => $sort_direction, - 'admin_utilities_sorting_url' => URL::getInstance()->absoluteUrl($path, array($request_parameter_name => $order_change)), - 'admin_utilities_header_text' => $label - )); - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'admin_sortable_header', $this, 'generateSortableColumnHeader'), - new SmartyPluginDescriptor('function', 'admin_position_block', $this, 'generatePositionChangeBlock'), - new SmartyPluginDescriptor('function', 'option_offset', $this, 'optionOffsetGenerator'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Assets.php b/local/local/modules/TheliaSmarty/Template/Plugins/Assets.php deleted file mode 100644 index a64578dd..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Assets.php +++ /dev/null @@ -1,106 +0,0 @@ -assetManager = new SmartyAssetsManager( - $assetsManager, - $assetsResolver, - THELIA_WEB_DIR, - $asset_dir_from_web_root - ); - } - - public function declareAssets($params, \Smarty_Internal_Template $template) - { - if (false !== $asset_dir = $this->getParam($params, 'directory', false)) { - $this->assetManager->prepareAssets($asset_dir, $template); - - return ''; - } - - throw new \InvalidArgumentException('declare_assets: parameter "directory" is required'); - } - - public function blockJavascripts($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this->assetManager->processSmartyPluginCall('js', $params, $content, $template, $repeat); - } - - public function blockImages($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this - ->assetManager - ->processSmartyPluginCall(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $content, $template, $repeat); - } - - public function blockStylesheets($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this->assetManager->processSmartyPluginCall('css', $params, $content, $template, $repeat); - } - - public function functionImage($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template); - } - - public function functionAsset($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template, false); - } - - public function functionJavascript($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template); - } - - public function functionStylesheet($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl('css', $params, $template); - } - - /** - * Define the various smarty plugins hendled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'stylesheets', $this, 'blockStylesheets'), - new SmartyPluginDescriptor('block', 'javascripts', $this, 'blockJavascripts'), - new SmartyPluginDescriptor('block', 'images', $this, 'blockImages'), - - new SmartyPluginDescriptor('function', 'asset', $this, 'functionAsset'), - new SmartyPluginDescriptor('function', 'image', $this, 'functionImage'), - new SmartyPluginDescriptor('function', 'javascript', $this, 'functionJavascript'), - new SmartyPluginDescriptor('function', 'stylesheet', $this, 'functionStylesheet'), - - new SmartyPluginDescriptor('function', 'declare_assets', $this, 'declareAssets') - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Cache.php b/local/local/modules/TheliaSmarty/Template/Plugins/Cache.php deleted file mode 100644 index 9a01272b..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Cache.php +++ /dev/null @@ -1,124 +0,0 @@ - - */ -class Cache extends AbstractSmartyPlugin -{ - /** @var AdapterInterface */ - protected $adapter; - - /** @var RequestStack */ - protected $requestStack; - - /** @var bool */ - protected $debug; - - /** - * Cache constructor. - * @param AdapterInterface $esiFragmentRenderer - * @param RequestStack $requestStack - * @param bool $debug - */ - public function __construct(AdapterInterface $esiFragmentRenderer, RequestStack $requestStack, $debug) - { - $this->adapter = $esiFragmentRenderer; - $this->requestStack = $requestStack; - $this->debug = $debug; - } - - public function cache(array $params, $content, $template, &$repeat) - { - $key = $this->getParam($params, 'key'); - if (null === $key || empty($key)) { - throw new \InvalidArgumentException( - "Missing 'key' parameter in cache arguments" - ); - } - - $ttl = (int) $this->getParam($params, 'ttl'); - if (null === $ttl) { - throw new \InvalidArgumentException( - "Missing 'ttl' parameter in cache arguments" - ); - } - - if ($this->debug || $ttl < 1) { - if (null !== $content) { - $repeat = false; - return $content; - } - return null; - } - - /** @var CacheItemInterface $cacheItem */ - $cacheItem = $this->adapter->getItem( - $this->generateKey($params) - ); - - if ($cacheItem->isHit()) { - $repeat = false; - return $cacheItem->get(); - } - - if ($content !== null) { - $cacheItem - ->expiresAfter((int) $params['ttl']) - ->set($content); - - $this->adapter->save($cacheItem); - $repeat = false; - return $cacheItem->get(); - } - } - - /** - * @param array $params - * @return string - */ - protected function generateKey(array $params) - { - /** @var Session $session */ - if (null !== $session = $this->requestStack->getCurrentRequest()->getSession()) { - if (!isset($params['lang'])) { - $params['lang'] = $session->getLang(true)->getId(); - } - if (!isset($params['currency'])) { - $params['currency'] = $session->getCurrency(true)->getId(); - } - } - - return 'smarty_cache_' . md5(json_encode($params)); - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'cache', $this, 'cache') - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/CartPostage.php b/local/local/modules/TheliaSmarty/Template/Plugins/CartPostage.php deleted file mode 100644 index b760060d..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/CartPostage.php +++ /dev/null @@ -1,251 +0,0 @@ -container = $container; - - $this->requestStack = $container->get('request_stack'); - - $this->request = $this->getCurrentRequest(); - - $this->dispatcher = $container->get('event_dispatcher'); - } - - /** - * Get postage amount for cart - * - * @param array $params Block parameters - * @param mixed $content Block content - * @param \Smarty_Internal_Template $template Template - * @param bool $repeat Control how many times - * the block is displayed - * - * @return mixed - */ - public function postage($params, $content, $template, &$repeat) - { - if (!$repeat) { - return (null !== $this->countryId) ? $content : ""; - } - - $customer = $this->getCurrentRequest()->getSession()->getCustomerUser(); - /** @var Address $address */ - /** @var Country $country */ - list($address, $country, $state) = $this->getDeliveryInformation($customer); - - if (null !== $country) { - $this->countryId = $country->getId(); - // try to get the cheapest delivery for this country - $this->getCheapestDelivery($address, $country); - } - - $template->assign('country_id', $this->countryId); - $template->assign('delivery_id', $this->deliveryId); - $template->assign('postage', $this->postage ?: 0.0); - $template->assign('postage_tax', $this->postageTax ?: 0.0); - $template->assign('postage_title', $this->postageTaxRuleTitle ?: 0.0); - $template->assign('is_customizable', $this->isCustomizable); - } - - /** - * Retrieve the delivery country for a customer - * - * The rules : - * - the country of the delivery address of the customer related to the - * cart if it exists - * - the country saved in cookie if customer have changed - * the default country - * - the default country for the shop if it exists - * - * - * @param \Thelia\Model\Customer $customer - * @return \Thelia\Model\Country - */ - protected function getDeliveryInformation(Customer $customer = null) - { - $address = null; - // get the selected delivery address - if (null !== $addressId = $this->getCurrentRequest()->getSession()->getOrder()->getChoosenDeliveryAddress()) { - if (null !== $address = AddressQuery::create()->findPk($addressId)) { - $this->isCustomizable = false; - return [$address, $address->getCountry(), null]; - } - } - - // get country from customer addresses - if (null !== $customer) { - $address = AddressQuery::create() - ->filterByCustomerId($customer->getId()) - ->filterByIsDefault(1) - ->findOne() - ; - - if (null !== $address) { - $this->isCustomizable = false; - - return [$address, $address->getCountry(), null]; - } - } - - // get country from cookie - $cookieName = ConfigQuery::read('front_cart_country_cookie_name', 'fcccn'); - if ($this->getCurrentRequest()->cookies->has($cookieName)) { - $cookieVal = $this->getCurrentRequest()->cookies->getInt($cookieName, 0); - if (0 !== $cookieVal) { - $country = CountryQuery::create()->findPk($cookieVal); - if (null !== $country) { - return [null, $country, null]; - } - } - } - - // get default country for store. - try { - $country = Country::getDefaultCountry(); - - return [null, $country, null]; - } catch (\LogicException $e) { - ; - } - - return [null, null, null]; - } - - /** - * Retrieve the cheapest delivery for country - * - * @param Address $address - * @param \Thelia\Model\Country $country - * @return DeliveryModuleInterface - */ - protected function getCheapestDelivery(Address $address = null, Country $country = null) - { - $cart = $this->getCurrentRequest()->getSession()->getSessionCart(); - - $deliveryModules = ModuleQuery::create() - ->filterByActivate(1) - ->filterByType(BaseModule::DELIVERY_MODULE_TYPE, Criteria::EQUAL) - ->find() - ; - - /** @var \Thelia\Model\Module $deliveryModule */ - foreach ($deliveryModules as $deliveryModule) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - try { - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $address, $country, $state); - $this->dispatcher->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - if ($deliveryPostageEvent->isValidModule()) { - $postage = $deliveryPostageEvent->getPostage(); - - if (null === $this->postage || $this->postage > $postage->getAmount()) { - $this->postage = $postage->getAmount(); - $this->postageTax = $postage->getAmountTax(); - $this->postageTaxRuleTitle = $postage->getTaxRuleTitle(); - $this->deliveryId = $deliveryModule->getId(); - } - } - } catch (DeliveryException $ex) { - // Module is not available - } - } - } - - /** - * Defines the various smarty plugins handled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'postage', $this, 'postage') - ); - } - - /** - * @return null|Request - */ - protected function getCurrentRequest() - { - return $this->requestStack->getCurrentRequest(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php b/local/local/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php deleted file mode 100644 index 0dd8fc90..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php +++ /dev/null @@ -1,961 +0,0 @@ - - * - */ -class DataAccessFunctions extends AbstractSmartyPlugin -{ - /** @var SecurityContext */ - private $securityContext; - - /** @var ParserContext */ - protected $parserContext; - - /** @var RequestStack */ - protected $requestStack; - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** @var TaxEngine */ - protected $taxEngine; - - /** @var CouponManager */ - protected $couponManager; - - private static $dataAccessCache = array(); - - public function __construct( - RequestStack $requestStack, - SecurityContext $securityContext, - TaxEngine $taxEngine, - ParserContext $parserContext, - EventDispatcherInterface $dispatcher, - CouponManager $couponManager - ) { - $this->securityContext = $securityContext; - $this->parserContext = $parserContext; - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - $this->taxEngine = $taxEngine; - $this->couponManager = $couponManager; - } - - /** - * Provides access to the current logged administrator attributes using the accessors. - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function adminDataAccess($params, &$smarty) - { - return $this->dataAccess("Admin User", $params, $this->securityContext->getAdminUser()); - } - - /** - * Provides access to the current logged customer attributes thought the accessor - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function customerDataAccess($params, &$smarty) - { - return $this->dataAccess("Customer User", $params, $this->securityContext->getCustomerUser()); - } - - /** - * Provides access to an attribute of the current product - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function productDataAccess($params, &$smarty) - { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - return $this->dataAccessWithI18n( - "Product", - $params, - ProductQuery::create()->filterByPrimaryKey($productId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current category - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function categoryDataAccess($params, &$smarty) - { - $categoryId = $this->getRequest()->get('category_id'); - - if ($categoryId === null) { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - if (null !== $product = ProductQuery::create()->findPk($productId)) { - $categoryId = $product->getDefaultCategoryId(); - } - } - } - - if ($categoryId !== null) { - return $this->dataAccessWithI18n( - "Category", - $params, - CategoryQuery::create()->filterByPrimaryKey($categoryId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current content - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function contentDataAccess($params, &$smarty) - { - $contentId = $this->getRequest()->get('content_id'); - - if ($contentId !== null) { - return $this->dataAccessWithI18n( - "Content", - $params, - ContentQuery::create()->filterByPrimaryKey($contentId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current folder - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function folderDataAccess($params, &$smarty) - { - $folderId = $this->getRequest()->get('folder_id'); - - if ($folderId === null) { - $contentId = $this->getRequest()->get('content_id'); - - if ($contentId !== null) { - if (null !== $content = ContentQuery::create()->findPk($contentId)) { - $folderId = $content->getDefaultFolderId(); - } - } - } - - if ($folderId !== null) { - return $this->dataAccessWithI18n( - "Folder", - $params, - FolderQuery::create()->filterByPrimaryKey($folderId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current brand - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function brandDataAccess($params, &$smarty) - { - $brandId = $this->getRequest()->get('brand_id'); - - if ($brandId === null) { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - if (null !== $product = ProductQuery::create()->findPk($productId)) { - $brandId = $product->getBrandId(); - } - } - } - - if ($brandId !== null) { - return $this->dataAccessWithI18n( - "Brand", - $params, - BrandQuery::create()->filterByPrimaryKey($brandId) - ); - } - - return ''; - } - - - /** - * Provides access to an attribute of the current currency - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function currencyDataAccess($params, $smarty) - { - $currency = $this->getSession()->getCurrency(); - - if ($currency) { - return $this->dataAccessWithI18n( - "Currency", - $params, - CurrencyQuery::create()->filterByPrimaryKey($currency->getId()), - array("NAME") - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the default country - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function countryDataAccess($params, $smarty) - { - switch ($params["ask"]) { - case "default": - return $this->dataAccessWithI18n( - "defaultCountry", - $params, - CountryQuery::create()->filterByByDefault(1)->limit(1) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the cart - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function cartDataAccess($params, $smarty) - { - /** @var Country $taxCountry */ - if (array_key_exists('currentCountry', self::$dataAccessCache)) { - $taxCountry = self::$dataAccessCache['currentCountry']; - } else { - $taxCountry = $this->taxEngine->getDeliveryCountry(); - self::$dataAccessCache['currentCountry'] = $taxCountry; - } - - /** @var State $taxState */ - if (array_key_exists('currentState', self::$dataAccessCache)) { - $taxState = self::$dataAccessCache['currentState']; - } else { - $taxState = $this->taxEngine->getDeliveryState(); - self::$dataAccessCache['currentState'] = $taxState; - } - - /** @var Cart $cart */ - $cart = $this->getSession()->getSessionCart($this->dispatcher); - - $result = ""; - switch ($params["attr"]) { - case "count_product": - case "product_count": - $result = $cart->getCartItems()->count(); - break; - case "count_item": - case "item_count": - $count_allitem = 0; - foreach ($cart->getCartItems() as $cartItem) { - $count_allitem += $cartItem->getQuantity(); - } - $result = $count_allitem; - break; - case "total_price": - case "total_price_with_discount": - $result = $cart->getTotalAmount(true); - break; - case "total_price_without_discount": - $result = $cart->getTotalAmount(false); - break; - case "total_taxed_price": - case "total_taxed_price_with_discount": - $result = $cart->getTaxedAmount($taxCountry, true, $taxState); - break; - case "total_taxed_price_without_discount": - $result = $cart->getTaxedAmount($taxCountry, false, $taxState); - break; - case "is_virtual": - case "contains_virtual_product": - $result = $cart->isVirtual(); - break; - case "total_vat": - case 'total_tax_amount': - $result = $cart->getTotalVAT($taxCountry); - break; - case "weight": - $result = $cart->getWeight(); - break; - } - - return $result; - } - - public function couponDataAccess($params, &$smarty) - { - /** @var Order $order */ - $order = $this->getSession()->getOrder(); - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - - switch ($attribute) { - case 'has_coupons': - return count($this->couponManager->getCouponsKept()) > 0; - case 'coupon_count': - return count($this->couponManager->getCouponsKept()); - case 'coupon_list': - $orderCoupons = []; - /** @var CouponInterface $coupon */ - foreach($this->couponManager->getCouponsKept() as $coupon) { - $orderCoupons[] = $coupon->getCode(); - } - return $orderCoupons; - case 'is_delivery_free': - return $this->couponManager->isCouponRemovingPostage($order); - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", 'Order', $attribute)); - } - - /** - * Provides access to an attribute of the current order - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function orderDataAccess($params, &$smarty) - { - /** @var Order $order */ - $order = $this->getSession()->getOrder(); - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - switch ($attribute) { - case 'untaxed_postage': - return $order->getUntaxedPostage(); - case 'postage': - return $order->getPostage(); - case 'postage_tax': - return $order->getPostageTax(); - case 'discount': - return $order->getDiscount(); - case 'delivery_address': - return $order->getChoosenDeliveryAddress(); - case 'invoice_address': - return $order->getChoosenInvoiceAddress(); - case 'delivery_module': - return $order->getDeliveryModuleId(); - case 'payment_module': - return $order->getPaymentModuleId(); - case 'has_virtual_product': - return $order->hasVirtualProduct(); - - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", 'Order', $attribute)); - } - - /** - * Provides access to an attribute of the current language - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - - public function langDataAccess($params, $smarty) - { - return $this->dataAccess("Lang", $params, $this->getSession()->getLang()); - } - - public function configDataAccess($params, $smarty) - { - $key = $this->getParam($params, 'key', false); - - if ($key === false) { - return null; - } - - $default = $this->getParam($params, 'default', ''); - - return ConfigQuery::read($key, $default); - } - - /** - * Provides access to a module configuration value - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the configuration value - */ - - public function moduleConfigDataAccess($params, $smarty) - { - $key = $this->getParam($params, 'key', false); - $moduleCode = $this->getParam($params, 'module', false); - $locale = $this->getParam($params, 'locale'); - - if (null === $locale) { - $locale = $this->getSession()->getLang()->getLocale(); - } - - if ($key === false || $moduleCode === false) { - return null; - } - - $default = $this->getParam($params, 'default', ''); - - if (null !== $module = ModuleQuery::create()->findOneByCode($moduleCode)) { - return ModuleConfigQuery::create() - ->getConfigValue( - $module->getId(), - $key, - $default, - $locale - ); - } else { - Tlog::getInstance()->addWarning( - sprintf( - "Module code '%s' not found in module-config Smarty function", - $moduleCode - ) - ); - - $value = $default; - } - - return $value; - } - - /** - * Provides access to sales statistics - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - - public function statsAccess($params, $smarty) - { - if (false === array_key_exists("key", $params)) { - throw new \InvalidArgumentException(sprintf("missing key attribute in stats access function")); - } - if (false === array_key_exists("startDate", $params) || $params['startDate'] === '') { - throw new \InvalidArgumentException(sprintf("missing startDate attribute in stats access function")); - } - if (false === array_key_exists("endDate", $params) || $params['endDate'] === '') { - throw new \InvalidArgumentException(sprintf("missing endDate attribute in stats access function")); - } - - if (false !== array_key_exists("includeShipping", $params) && $params['includeShipping'] == 'false') { - $includeShipping = false; - } else { - $includeShipping = true; - } - - if ($params['startDate'] == 'today') { - $startDate = new \DateTime(); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'yesterday') { - $startDate = new \DateTime(); - $startDate->setTime(0, 0, 0); - $startDate->modify('-1 day'); - } elseif ($params['startDate'] == 'this_month') { - $startDate = new \DateTime(); - $startDate->modify('first day of this month'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'last_month') { - $startDate = new \DateTime(); - $startDate->modify('first day of last month'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'this_year') { - $startDate = new \DateTime(); - $startDate->modify('first day of January this year'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'last_year') { - $startDate = new \DateTime(); - $startDate->modify('first day of January last year'); - $startDate->setTime(0, 0, 0); - } else { - try { - $startDate = new \DateTime($params['startDate']); - } catch (\Exception $e) { - throw new \InvalidArgumentException( - sprintf("invalid startDate attribute '%s' in stats access function", $params['startDate']) - ); - } - } - - if ($params['endDate'] == 'today') { - $endDate = new \DateTime(); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'yesterday') { - $endDate = new \DateTime(); - $endDate->setTime(0, 0, 0); - $endDate->modify('-1 day'); - } elseif ($params['endDate'] == 'this_month') { - $endDate = new \DateTime(); - $endDate->modify('last day of this month'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'last_month') { - $endDate = new \DateTime(); - $endDate->modify('last day of last month'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'this_year') { - $endDate = new \DateTime(); - $endDate->modify('last day of December this year'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'last_year') { - $endDate = new \DateTime(); - $endDate->modify('last day of December last year'); - $endDate->setTime(0, 0, 0); - } else { - try { - $endDate = new \DateTime($params['endDate']); - } catch (\Exception $e) { - throw new \InvalidArgumentException( - sprintf("invalid endDate attribute '%s' in stats access function", $params['endDate']) - ); - } - } - - switch ($params['key']) { - case 'sales': - return OrderQuery::getSaleStats($startDate, $endDate, $includeShipping); - break; - case 'orders': - return OrderQuery::getOrderStats($startDate, $endDate, array(1,2,3,4)); - break; - } - - throw new \InvalidArgumentException( - sprintf("invalid key attribute '%s' in stats access function", $params['key']) - ); - } - - /** - * Retrieve meta data associated to an element - * - * params should contain at least key an id attributes. Thus it will return - * an array of associated data. - * - * If meta argument is specified then it will return an unique value. - * - * @param array $params - * @param \Smarty $smarty - * - * @throws \InvalidArgumentException - * - * @return string|array|null - */ - public function metaAccess($params, $smarty) - { - $meta = $this->getParam($params, 'meta', null); - $key = $this->getParam($params, 'key', null); - $id = $this->getParam($params, 'id', null); - - $cacheKey = sprintf('meta_%s_%s_%s', $meta, $key, $id); - - $out = null; - - if (array_key_exists($cacheKey, self::$dataAccessCache)) { - return self::$dataAccessCache[$cacheKey]; - } - - if ($key !== null && $id !== null) { - if ($meta === null) { - $out = MetaDataQuery::getAllVal($key, (int) $id); - } else { - $out = MetaDataQuery::getVal($meta, $key, (int) $id); - } - } else { - throw new \InvalidArgumentException("key and id arguments are required in meta access function"); - } - - self::$dataAccessCache[$cacheKey] = $out; - - if (!empty($params['out'])) { - $smarty->assign($params['out'], $out); - - return $out !== null ? true : false; - } else { - if (is_array($out)) { - throw new \InvalidArgumentException('The argument "out" is required if the meta value is an array'); - } - - return $out; - } - } - - /** - * @param $objectLabel - * @param $params - * @param ModelCriteria $search - * @param array $columns - * @param null $foreignTable - * @param string $foreignKey - * - * @return string - */ - protected function dataAccessWithI18n( - $objectLabel, - $params, - ModelCriteria $search, - $columns = array('TITLE', 'CHAPO', 'DESCRIPTION', 'POSTSCRIPTUM'), - $foreignTable = null, - $foreignKey = 'ID' - ) { - if (array_key_exists('data_' . $objectLabel, self::$dataAccessCache)) { - $data = self::$dataAccessCache['data_' . $objectLabel]; - } else { - $lang = $this->getNormalizedParam($params, array('lang')); - if ($lang === null) { - $lang = $this->getSession()->getLang()->getId(); - } - - ModelCriteriaTools::getI18n( - false, - $lang, - $search, - $this->getSession()->getLang()->getLocale(), - $columns, - $foreignTable, - $foreignKey, - true - ); - - $data = $search->findOne(); - - self::$dataAccessCache['data_' . $objectLabel] = $data; - } - - if ($data !== null) { - $noGetterData = array(); - - foreach ($columns as $column) { - $noGetterData[$column] = $data->getVirtualColumn('i18n_' . $column); - } - - return $this->dataAccess($objectLabel, $params, $data, $noGetterData); - } else { - throw new NotFoundHttpException(); - } - } - - /** - * @param $objectLabel - * @param $params - * @param $data - * @param array $noGetterData - * - * @return string - * @throws \InvalidArgumentException - */ - protected function dataAccess($objectLabel, $params, $data, $noGetterData = array()) - { - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - - if (!empty($attribute)) { - if (null != $data) { - $keyAttribute = strtoupper($attribute); - if (array_key_exists($keyAttribute, $noGetterData)) { - return $noGetterData[$keyAttribute]; - } - - $getter = sprintf("get%s", $this->underscoreToCamelcase($attribute)); - if (method_exists($data, $getter)) { - $return = $data->$getter(); - - if ($return instanceof \DateTime) { - if (array_key_exists("format", $params)) { - $format = $params["format"]; - } else { - $format = DateTimeFormat::getInstance($this->getRequest())->getFormat( - array_key_exists("output", $params) ? $params["output"] : null - ); - } - - $return = $return->format($format); - } - - return $return; - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", $objectLabel, $attribute)); - } - } - - return ''; - } - - /** - * Transcode an underscored string into a camel-cased string, eg. default_folder into DefaultFolder - * - * @param string $str the string to convert from underscore to camel-case - * - * @return string the camel cased string. - */ - private function underscoreToCamelcase($str) - { - // Split string in words. - $words = explode('_', strtolower($str)); - - $return = ''; - - foreach ($words as $word) { - $return .= ucfirst(trim($word)); - } - - return $return; - } - - - - - /** - * Provides access to the uploaded store-related images (such as logo or favicon) - * - * @param array $params - * @param string $content - * @param \Smarty_Internal_Template $template - * @param boolean $repeat - * @return string|null - */ - public function storeMediaDataAccess($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $type = $this->getParam($params, 'type', null); - $allowedTypes = ['favicon', 'logo', 'banner']; - - - if ($type !== null && in_array($type, $allowedTypes)) { - switch ($type) { - case 'favicon': - $configKey = 'favicon_file'; - $defaultImageName = 'favicon.png'; - break; - case 'logo': - $configKey = 'logo_file'; - $defaultImageName = 'logo.png'; - break; - case 'banner': - $configKey = 'banner_file'; - $defaultImageName = 'banner.jpg'; - break; - } - - $uploadDir = ConfigQuery::read('images_library_path'); - - if ($uploadDir === null) { - $uploadDir = THELIA_LOCAL_DIR . 'media' . DS . 'images'; - } else { - $uploadDir = THELIA_ROOT . $uploadDir; - } - - $uploadDir .= DS . 'store'; - - - $imageFileName = ConfigQuery::read($configKey); - - $skipImageTransform = false; - - // If we couldn't find the image path in the config table or if it doesn't exist, we take the default image provided. - if ($imageFileName == null) { - $imageSourcePath = $uploadDir . DS . $defaultImageName; - } else { - $imageSourcePath = $uploadDir . DS . $imageFileName; - - if (!file_exists($imageSourcePath)) { - Tlog::getInstance()->error(sprintf('Source image file %s does not exists.', $imageSourcePath)); - $imageSourcePath = $uploadDir . DS . $defaultImageName; - } - - if ($type == 'favicon') { - $extension = pathinfo($imageSourcePath, PATHINFO_EXTENSION); - if ($extension == 'ico') { - $mime_type = 'image/x-icon'; - - // If the media is a .ico favicon file, we skip the image transformations, - // as transformations on .ico file are not supported by Thelia. - $skipImageTransform = true; - } else { - $mime_type = 'image/png'; - } - - $template->assign('MEDIA_MIME_TYPE', $mime_type); - } - } - - $event = new ImageEvent(); - $event->setSourceFilepath($imageSourcePath) - ->setCacheSubdirectory('store'); - - - if (!$skipImageTransform) { - switch ($this->getParam($params, 'resize_mode', null)) { - case 'crop': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; - break; - - case 'borders': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; - break; - - case 'none': - default: - $resize_mode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; - } - - // Prepare transformations - $width = $this->getParam($params, 'width', null); - $height = $this->getParam($params, 'height', null); - $rotation = $this->getParam($params, 'rotation', null); - - if (!is_null($width)) { - $event->setWidth($width); - } - if (!is_null($height)) { - $event->setHeight($height); - } - $event->setResizeMode($resize_mode); - if (!is_null($rotation)) { - $event->setRotation($rotation); - } - } - - $this->dispatcher->dispatch(TheliaEvents::IMAGE_PROCESS, $event); - - $template->assign('MEDIA_URL', $event->getFileUrl()); - } - - if (isset($content)) { - return $content; - } - - return null; - } - - - - - /** - * @inheritdoc - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'admin', $this, 'adminDataAccess'), - new SmartyPluginDescriptor('function', 'customer', $this, 'customerDataAccess'), - new SmartyPluginDescriptor('function', 'product', $this, 'productDataAccess'), - new SmartyPluginDescriptor('function', 'category', $this, 'categoryDataAccess'), - new SmartyPluginDescriptor('function', 'content', $this, 'contentDataAccess'), - new SmartyPluginDescriptor('function', 'folder', $this, 'folderDataAccess'), - new SmartyPluginDescriptor('function', 'brand', $this, 'brandDataAccess'), - new SmartyPluginDescriptor('function', 'currency', $this, 'currencyDataAccess'), - new SmartyPluginDescriptor('function', 'country', $this, 'countryDataAccess'), - new SmartyPluginDescriptor('function', 'lang', $this, 'langDataAccess'), - new SmartyPluginDescriptor('function', 'cart', $this, 'cartDataAccess'), - new SmartyPluginDescriptor('function', 'order', $this, 'orderDataAccess'), - new SmartyPluginDescriptor('function', 'config', $this, 'configDataAccess'), - new SmartyPluginDescriptor('function', 'stats', $this, 'statsAccess'), - new SmartyPluginDescriptor('function', 'meta', $this, 'metaAccess'), - new SmartyPluginDescriptor('function', 'module_config', $this, 'moduleConfigDataAccess'), - new SmartyPluginDescriptor('function', 'coupon', $this, 'couponDataAccess'), - - new SmartyPluginDescriptor('block', 'local_media', $this, 'storeMediaDataAccess'), - ); - } - - /** - * @return Request - */ - protected function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->getRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Esi.php b/local/local/modules/TheliaSmarty/Template/Plugins/Esi.php deleted file mode 100644 index 6bee285c..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Esi.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -class Esi extends AbstractSmartyPlugin -{ - /** @var EsiFragmentRenderer */ - protected $esiFragmentRender; - - /** @var RequestStack */ - protected $requestStack; - - public function __construct(EsiFragmentRenderer $esiFragmentRenderer, RequestStack $requestStack) - { - $this->esiFragmentRender = $esiFragmentRenderer; - $this->requestStack = $requestStack; - } - - public function renderEsi($params, $template = null) - { - $path = $this->getParam($params, 'path'); - $alt = $this->getParam($params, 'alt'); - $ignore_errors = $this->getParam($params, 'ignore_errors'); - $comment = $this->getParam($params, 'comment'); - - if (null === $path) { - return; - } - - $response = $this->esiFragmentRender->render($path, $this->requestStack->getCurrentRequest(), array( - 'alt' => $alt, - 'ignore_errors' => $ignore_errors, - 'comment' => $comment - )); - - if (!$response->isSuccessful()) { - return null; - } - - return $response->getContent(); - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'render_esi', $this, 'renderEsi') - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/FlashMessage.php b/local/local/modules/TheliaSmarty/Template/Plugins/FlashMessage.php deleted file mode 100644 index 7ad9a5a2..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/FlashMessage.php +++ /dev/null @@ -1,155 +0,0 @@ -{$MESSAGE} - * {/flash} - * ``` - * Class Form - * - * @package Thelia\Core\Template\Smarty\Plugins - * @author Guillaume MOREL - * @author Julien Chanséaume - */ -class FlashMessage extends AbstractSmartyPlugin -{ - /** @var RequestStack Request service */ - protected $requestStack; - - /** @var FlashMessageBag $results */ - protected $results; - - /** @var Translator */ - protected $translator; - - public function __construct(RequestStack $requestStack, Translator $translator) - { - $this->requestStack = $requestStack; - $this->translator = $translator; - } - - /** - * Process the count function: executes a loop and return the number of items found - * - * @param array $params parameters array - * @param \Smarty_Internal_Template $template - * - * @return int the item count - * @throws \InvalidArgumentException if a parameter is missing - * - */ - public function hasFlashMessage( - $params, - /** @noinspection PhpUnusedParameterInspection */ - $template - ) { - $type = $this->getParam($params, 'type', null); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in {hasflash} function arguments") - ); - } - - return $this->getSession()->getFlashBag()->has($type); - } - - /** - * Get FlashMessage - * And clean session from this key - * - * @param array $params Block parameters - * @param mixed $content Block content - * @param \Smarty_Internal_Template $template Template - * @param bool $repeat Control how many times - * the block is displayed - * - * @return mixed - */ - public function getFlashMessage($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $type = $this->getParam($params, 'type', false); - - if (null === $content) { - $this->results = new FlashMessageBag(); - - if (false === $type) { - $this->results->addAll($this->getSession()->getFlashBag()->all()); - } else { - $this->results->add( - $type, - $this->getSession()->getFlashBag()->get($type, []) - ); - } - - if ($this->results->isEmpty()) { - $repeat = false; - } - } else { - $this->results->next(); - } - - if ($this->results->valid()) { - $message = $this->results->current(); - $template->assign("TYPE", $message["type"]); - $template->assign("MESSAGE", $message["message"]); - - $repeat = true; - } - - if ($content !== null) { - if ($this->results->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return [ - new SmartyPluginDescriptor("function", "hasflash", $this, "hasFlashMessage"), - new SmartyPluginDescriptor("block", "flash", $this, "getFlashMessage") - ]; - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Form.php b/local/local/modules/TheliaSmarty/Template/Plugins/Form.php deleted file mode 100644 index 335b79a4..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Form.php +++ /dev/null @@ -1,1029 +0,0 @@ - find form named myForm, - * create an instance and assign this instanciation into smarty variable. Form must be declare into - * config using tag - * - * - {form_field form=$form.fieldName} {/form_field} This block find info into the Form field containing by - * the form paramter. This field must be an instance of FormView. fieldName is the name of your field. This block - * can output these info : - * * $name => name of yout input - * * $value => value for your input - * * $label => label for your input - * * $error => boolean for know if there is error for this field - * * $attr => all your attribute for your input (define when you construct programmatically you form) - * - * - {form_error form=$form.fieldName} ... {/form_error} Display this block if there are errors on this field. - * fieldName is the name of your field - * - * Class Form - * @package Thelia\Core\Template\Smarty\Plugins - */ -class Form extends AbstractSmartyPlugin -{ - const COLLECTION_TYPE_NAME = "collection"; - - private static $taggedFieldsStack = null; - private static $taggedFieldsStackPosition = null; - - /** @var ContainerInterface */ - protected $container; - - /** @var ParserContext $parserContext */ - protected $parserContext; - - /** @var ParserInterface $parser */ - protected $parser; - - protected $formDefinition = array(); - - /** @var array|TheliaFormFactoryInterface */ - protected $formFactory = array(); - - /** @var array The form collection stack */ - protected $formCollectionStack = array(); - - /** @var array Counts collection loop in page */ - protected $formCollectionCount = array(); - - public function __construct( - TheliaFormFactoryInterface $formFactory, - ParserContext $parserContext, - ParserInterface $parser - ) { - $this->formFactory = $formFactory; - $this->parserContext = $parserContext; - $this->parser = $parser; - } - - public function setFormDefinition($formDefinition) - { - foreach ($formDefinition as $name => $className) { - if (array_key_exists($name, $this->formDefinition)) { - throw new \InvalidArgumentException( - sprintf("%s form name already exists for %s class", $name, $className) - ); - } - - $this->formDefinition[$name] = $className; - } - } - - public function generateForm($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if ($repeat) { - $name = $this->getParam($params, 'name'); - $formType = $this->getParam($params, 'type', 'form'); - - if (null == $name) { - $name = "thelia.empty"; - } - - if (!isset($this->formDefinition[$name])) { - throw new ElementNotFoundException(sprintf("%s form does not exists", $name)); - } - - $formClass = $this->formDefinition[$name]; - - // Check if parser context contains our form - $instance = $this->parserContext->getForm($name, $formClass, $formType); - - if (null === $instance) { - // If not, create a new instance - $instance = $this->formFactory->createForm($name); - } - - // Set the current form - $this->parserContext->pushCurrentForm($instance); - - $instance->createView(); - - $template->assign("form", $instance); - $template->assign("form_name", $instance->getName()); - - $template->assign("form_error", $instance->hasError() ? true : false); - $template->assign("form_error_message", $instance->getErrorMessage()); - } else { - $this->parserContext->popCurrentForm(); - - return $content; - } - } - - /** - * @param \Smarty_Internal_Template $template - * @param string $fieldName - * @param string $fieldValue - * @param string $fieldType - * @param array $fieldVars - * @param int $total_value_count - */ - protected function assignFieldValues( - $template, - $fieldName, - $fieldValue, - $fieldType, - $fieldVars, - $total_value_count = 1 - ) { - $template->assign("name", $fieldName); - $template->assign("value", $fieldValue); - $template->assign("data", $fieldVars['data']); - - $template->assign("type", $fieldType); - - $template->assign("checked", isset($fieldVars['data']) ? $fieldVars['data'] : false); - $template->assign("choices", isset($fieldVars['choices']) ? $fieldVars['choices'] : false); - $template->assign("multiple", isset($fieldVars['multiple']) ? $fieldVars['multiple'] : false); - $template->assign("disabled", isset($fieldVars['disabled']) ? $fieldVars['disabled'] : false); - $template->assign("read_only", isset($fieldVars['read_only']) ? $fieldVars['read_only'] : false); - $template->assign("max_length", isset($fieldVars['max_length']) ? $fieldVars['max_length'] : false); - $template->assign('required', isset($fieldVars['required']) ? $fieldVars['required'] : false); - - $template->assign("label", $fieldVars["label"]); - $template->assign("label_attr", $fieldVars["label_attr"]); - - $template->assign('total_value_count', $total_value_count); - - /** @var FormErrorIterator $errors */ - $errors = $fieldVars["errors"]; - if ($errors) { - $template->assign("error", $errors->count() ? true : false); - $this->assignFieldErrorVars($template, $errors); - } - - $attr = array(); - - foreach ($fieldVars["attr"] as $key => $value) { - $attr[] = sprintf('%s="%s"', $key, $value); - } - - $template->assign("attr", implode(" ", $attr)); - $template->assign("attr_list", $fieldVars["attr"]); - } - - /** - * @param \Smarty_Internal_Template $template - * @param FormConfigInterface $formFieldConfig - * @param FormView $formFieldView - */ - protected function assignFormTypeValues($template, $formFieldConfig, $formFieldView) - { - $formFieldType = $formFieldConfig->getType()->getInnerType(); - - /* access to choices */ - if ($formFieldType instanceof ChoiceType) { - $template->assign("choices", $formFieldView->vars['choices']); - } - - /* access to collections */ - if ($formFieldType instanceof CollectionType) { - if (true === $formFieldConfig->getOption('prototype')) { - } else { - /* access to choices */ - if (isset($formFieldView->vars['choices'])) { - $template->assign("choices", $formFieldView->vars['choices']); - } - } - } - - /* access to date */ - if ($formFieldType instanceof DateType || $formFieldType instanceof DateTimeType || $formFieldType instanceof BirthdayType) { - if ('choice' === $formFieldConfig->getOption('widget')) { - /* access to years */ - if ($formFieldConfig->getOption('years')) { - $formFieldView->vars['years'] = $formFieldConfig->getOption('years'); - $template->assign("years", $formFieldView->vars['years']); - } - - /* access to month */ - if ($formFieldConfig->getOption('months')) { - $formFieldView->vars['months'] = $formFieldConfig->getOption('months'); - $template->assign("months", $formFieldView->vars['months']); - } - - /* access to days */ - if ($formFieldConfig->getOption('days')) { - $formFieldView->vars['days'] = $formFieldConfig->getOption('days'); - $template->assign("days", $formFieldView->vars['days']); - } - - /* access to empty_value */ - if ($formFieldConfig->getOption('empty_value')) { - $formFieldView->vars['empty_value'] = $formFieldConfig->getOption('empty_value'); - $template->assign("empty_value", $formFieldView->vars['empty_value']); - } - } - } - - /* access to thelia type */ - if ($formFieldType instanceof TheliaType) { - $template->assign("formType", $formFieldView->vars['type']); - - switch ($formFieldView->vars['type']) { - case "choice": - if (!isset($formFieldView->vars['options']['choices']) || - !is_array($formFieldView->vars['options']['choices']) - ) { - //throw new - } - $choices = array(); - foreach ($formFieldView->vars['options']['choices'] as $value => $choice) { - $choices[] = new ChoiceView($value, $value, $choice); - } - $template->assign("choices", $choices); - break; - } - } - } - - /** - * @param array $params - * @param \Smarty_Internal_Template $template - */ - protected function processFormField($params, $template) - { - $formFieldView = $this->getFormFieldView($params); - $formFieldConfig = $this->getFormFieldConfig($params); - - $formFieldType = $formFieldConfig->getType()->getName(); - - $this->assignFormTypeValues($template, $formFieldConfig, $formFieldView); - - $value = $formFieldView->vars["value"]; - - $key = $this->getParam($params, 'value_key', null); - - // We (may) have a collection - if ($key !== null) { - // Force array - if (!is_array($value)) { - $value = array(); - } - - // If the field is not found, use an empty value - $name = sprintf("%s[%s]", $formFieldView->vars["full_name"], $key); - - $val = $value[$key]; - - // For collection types, the type of field is defined in the 'type' option. - // We will use this instead of the 'collection' type - $formFieldType = $formFieldConfig->getType()->getInnerType(); - - if ($formFieldType instanceof CollectionType) { - $formFieldType = $formFieldConfig->getOption('type'); - } - - $this->assignFieldValues( - $template, - $name, - $val, - $formFieldType, - $formFieldView->vars, - count($formFieldView->children) - ); - } else { - $this->assignFieldValues( - $template, - $formFieldView->vars["full_name"], - $formFieldView->vars["value"], - $formFieldType, - $formFieldView->vars - ); - } - - $formFieldView->setRendered(); - } - - public function renderFormField($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if ($repeat) { - $this->processFormField($params, $template); - } else { - return $content; - } - } - - /** - * @param array $params - * @param string $content - * @param string $templateFile - * @param \Smarty_Internal_Template $template - * @return string - */ - protected function automaticFormFieldRendering($params, $content, $template, $templateFile) - { - $data = ''; - - $templateStyle = $this->getParam($params, 'template', 'standard'); - - $snippet_path = sprintf( - '%s' . DS . 'forms' . DS . '%s' . DS . '%s.html', - $this->parser->getTemplateDefinition()->getAbsolutePath(), - $templateStyle, - $templateFile - ); - - if (false !== $snippet_content = file_get_contents($snippet_path)) { - $this->processFormField($params, $template); - - if (null === $form = $this->getParam($params, 'form', null)) { - $form = $this->parserContext->getCurrentForm(); - } - - $field_name = $this->getParam($params, 'field', false); - $field_extra_class = $this->getParam($params, 'extra_class', ''); - $field_extra_class = $this->getParam($params, 'extra_classes', $field_extra_class); - $field_no_standard_classes = $this->getParam($params, 'no_standard_classes', false); - $field_value = $this->getParam($params, 'value', ''); - $show_label = $this->getParam($params, 'show_label', true); - $value_key = $this->getParam($params, 'value_key', false); - - $template->assign([ - 'content' => trim($content), - 'form' => $form, - 'field_name' => $field_name, - 'field_extra_class' => $field_extra_class, - 'field_no_standard_classes' => $field_no_standard_classes, - 'field_value' => $field_value, - 'field_template' => $templateStyle, - 'value_key' => $value_key, - 'show_label' => $show_label, - ]); - - $data = $template->fetch(sprintf('string:%s', $snippet_content)); - } - - return $data; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return mixed - */ - public function customFormFieldRendering($params, $content, $template, &$repeat) - { - if (!$repeat) { - return $this->automaticFormFieldRendering($params, $content, $template, 'form-field-renderer'); - } - } - - public function standardFormFieldRendering($params, \Smarty_Internal_Template $template) - { - return $this->automaticFormFieldRendering($params, '', $template, 'form-field-renderer'); - } - - public function standardFormFieldAttributes($params, \Smarty_Internal_Template $template) - { - return $this->automaticFormFieldRendering($params, '', $template, 'form-field-attributes-renderer'); - } - - public function renderTaggedFormFields($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if (null === $content) { - self::$taggedFieldsStack = $this->getFormFieldsFromTag($params); - self::$taggedFieldsStackPosition = 0; - } else { - self::$taggedFieldsStackPosition++; - } - - if (isset(self::$taggedFieldsStack[self::$taggedFieldsStackPosition])) { - $field = self::$taggedFieldsStack[self::$taggedFieldsStackPosition]; - - $this->assignFieldValues( - $template, - $field['view']->vars["full_name"], - $field['view']->vars["value"], - $field['config']->getType()->getName(), - $field['view']->vars - ); - - $this->assignFormTypeValues($template, $field['config'], $field['view']); - - $field['view']->setRendered(); - - $repeat = true; - } - - if (!$repeat) { - self::$taggedFieldsStack = null; - self::$taggedFieldsStackPosition = null; - } - - if (null !== $content) { - return $content; - } - } - - public function renderHiddenFormField($params, \Smarty_Internal_Template $template) - { - $attrFormat = '%s="%s"'; - $field = ''; - - $baseFormInstance = $this->getInstanceFromParams($params); - - $formView = $baseFormInstance->getView(); - - $return = ""; - - $exclude = explode(',', $this->getParam($params, 'exclude', '')); - - /** @var FormView $row */ - foreach ($formView->getIterator() as $row) { - // We have to exclude the fields for which value is defined in the template. - if ($baseFormInstance->isTemplateDefinedHiddenField($row) - || - in_array($row->vars['name'], $exclude) - ) { - continue; - } - - if ($this->isHidden($row) && $row->isRendered() === false) { - $attributeList = array(); - if (isset($row->vars["attr"])) { - foreach ($row->vars["attr"] as $attrKey => $attrValue) { - $attributeList[] = sprintf($attrFormat, $attrKey, $attrValue); - } - } - $return .= sprintf($field, $row->vars["full_name"], $row->vars["value"], implode(' ', $attributeList)); - } - } - - return $return; - } - - public function formEnctype($params, \Smarty_Internal_Template $template) - { - $instance = $this->getInstanceFromParams($params); - - $formView = $instance->getView(); - - if ($formView->vars["multipart"]) { - return sprintf('%s="%s"', "enctype", "multipart/form-data"); - } - } - - public function formError($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $formFieldView = $this->getFormFieldView($params); - - /** @var FormErrorIterator $errors */ - $errors = $formFieldView->vars["errors"]; - - if (!$errors->count()) { - return ""; - } - - if ($repeat) { - $this->assignFieldErrorVars($template, $errors); - } else { - return $content; - } - } - - protected function assignFieldErrorVars(\Smarty_Internal_Template $template, FormErrorIterator $errors) - { - if ($errors->count()) { - $template->assign("message", $errors[0]->getMessage()); - $template->assign("parameters", $errors[0]->getMessageParameters()); - $template->assign("pluralization", $errors[0]->getMessagePluralization()); - } - } - - protected function isHidden(FormView $formView) - { - return array_search("hidden", $formView->vars["block_prefixes"]); - } - - /** - * @param $params - * @return FormView - * @throws \InvalidArgumentException - */ - protected function getFormFieldView($params) - { - $instance = $this->getInstanceFromParams($params); - - $fieldName = $this->getParam($params, 'field'); - - if (null == $fieldName) { - throw new \InvalidArgumentException("'field' parameter is missing"); - } - - $view = $this->retrieveField( - $fieldName, - $instance->getView(), - $instance->getName() - ); - - return $view; - } - - protected function getFormFieldsFromTag($params) - { - $instance = $this->getInstanceFromParams($params); - - $tag = $this->getParam($params, 'tag'); - - if (null == $tag) { - throw new \InvalidArgumentException("'tag' parameter is missing"); - } - - $viewList = array(); - foreach ($instance->getView() as $view) { - if (isset($view->vars['attr']['tag']) && $tag == $view->vars['attr']['tag']) { - $fieldData = $instance->getForm()->all()[$view->vars['name']]; - $viewList[] = array( - 'view' => $view, - 'config' => $fieldData->getConfig(), - ); - } - } - - return $viewList; - } - - /** - * @param $params - * @return FormConfigInterface - * @throws \InvalidArgumentException - */ - protected function getFormFieldConfig($params) - { - $instance = $this->getInstanceFromParams($params); - - $fieldName = $this->getParam($params, 'field'); - - if (null == $fieldName) { - throw new \InvalidArgumentException("'field' parameter is missing"); - } - - $fieldData = $this->retrieveField( - $fieldName, - $instance->getForm()->all(), - $instance->getName() - ); - - if (empty($fieldData)) { - throw new \InvalidArgumentException( - sprintf( - "Field name '%s' not found in form %s children", - $fieldName, - $instance->getName() - ) - ); - } - - return $fieldData->getConfig(); - } - - /** - * @param $params - * @return BaseForm - * @throws \InvalidArgumentException - */ - protected function getInstanceFromParams($params) - { - if (null === $instance = $this->getParam($params, 'form')) { - $instance = $this->parserContext->getCurrentForm(); - } - - if (null == $instance) { - throw new \InvalidArgumentException( - "Missing 'form' parameter in form arguments, and no current form was found." - ); - } - - if (!$instance instanceof BaseForm) { - throw new \InvalidArgumentException( - sprintf( - "form parameter in form_field block must be an instance of " . - "\Thelia\Form\BaseForm, instance of %s found", - get_class($instance) - ) - ); - } - - return $instance; - } - - /** - * @param $needle - * @param $haystack - * @param $formName - * @return \Symfony\Component\Form\Form - */ - protected function retrieveField($needle, $haystack, $formName) - { - $splitName = explode(".", $needle); - - foreach ($splitName as $level) { - if (empty($haystack[$level])) { - throw new \InvalidArgumentException( - sprintf("Field name '%s' not found in form %s", $needle, $formName) - ); - } - $haystack = $haystack[$level]; - } - - return $haystack; - } - - /** - * @param $params - * @param $name - * @param bool $throwException - * @return mixed|null - * - * Get a symfony form object form a function/block parameter - */ - protected function getSymfonyFormFromParams($params, $name, $throwException = false) - { - $sfForm = $this->getParam($params, $name); - - if (null === $sfForm && false === $throwException) { - return null; - } - - if (!$sfForm instanceof SymfonyForm) { - throw new \InvalidArgumentException( - sprintf( - "%s parameter must be an instance of " . - "\Symfony\Component\Form\Form, instance of %s found", - $name, - is_object($sfForm) ? get_class($sfForm) : gettype($sfForm) - ) - ); - } - - return $sfForm; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return mixed - * - * Loops around a form collection entries and assigns values to template - */ - public function renderFormCollection($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - /** - * Get parameters - */ - $form = $this->getInstanceFromParams($params); - $row = $this->getSymfonyFormFromParams($params, "row"); - $collection = $this->resolveCollection($this->getParam($params, "collection"), $form); - - $hash = $this->initializeCollection($form, $collection, $row); - - $limit = $this->getParam($params, "limit", -1); - - /** - * Check if it has a limit - */ - if (!preg_match("#^\-?\d+$#", $limit)) { - throw new \InvalidArgumentException( - sprintf( - "Invalid value for 'limit' parameter in 'form_collection'. '%s' given, integer expected", - $limit - ) - ); - } - - /** - * Then load stack and create the stack count - */ - $limit = (int)$limit; - $hasLimit = $limit >= 0; - - /** - * If we have reached the limit, stop - */ - $collectionLimit = $this->formCollectionCount[$hash]["limit"]; - - if (($hasLimit && $limit === $collectionLimit) || - null === $row = array_shift($this->formCollectionStack[$hash]) - ) { - $repeat = false; - - /** - * Reload stack limit - */ - $this->formCollectionCount[$hash]["limit"] = 0; - - return $content; - } - - /** - * Assign variables into the template - */ - $template->assign("row", $row); - $template->assign("collection_current", $this->formCollectionCount[$hash]["count"]++); - $template->assign("collection_count", $this->formCollectionCount[$hash]["total_count"]); - - /** - * Increment the current limit state - * Force the repeat - */ - $this->formCollectionCount[$hash]["limit"]++; - $repeat = true; - - /** - * ANd return the content - */ - - return $content; - } - - /** - * @param BaseForm $form - * @param SymfonyForm $field - * @return string - * - * Get definition, return hash - */ - protected function getFormStackHash(BaseForm $form, SymfonyForm $field = null) - { - $build = get_class($form) . ":" . $form->getType(); - - if (null !== $field) { - $build .= ":" . $this->buildFieldName($field); - } - - return md5($build); - } - - /** - * @param $collection - * @param BaseForm $form - * @return SymfonyForm - * - * Extract the collection object from the form - */ - protected function resolveCollection($collection, BaseForm $form) - { - if (null === $collection) { - throw new \InvalidArgumentException( - "Missing parameter 'collection' in 'form_collection" - ); - } - - $sfForm = $form->getForm(); - - if (!$sfForm->has($collection)) { - throw new \InvalidArgumentException( - sprintf( - "Field name '%s' not found in form %s children", - $collection, - $form->getName() - ) - ); - } - - /** - * Check that the field is a "collection" type - */ - $collectionConfig = $this->retrieveField( - $collection, - $sfForm->all(), - $form->getName() - ); - - $fieldType = $collectionConfig->getConfig()->getType(); - - if ($fieldType->getName() !== static::COLLECTION_TYPE_NAME) { - $baseFieldType = $fieldType; - $resolved = false; - - while (null !== $fieldType && !$resolved) { - if ($fieldType->getName() !== static::COLLECTION_TYPE_NAME) { - $fieldType = $fieldType->getParent(); - } - } - - if (!$resolved) { - throw new \LogicException( - sprintf( - "The field '%s' is not a collection, it's a '%s'." . - "You can't use it with the function 'form_collection' in form '%s'", - $collection, - $baseFieldType->getName(), - $form->getName() - ) - ); - } - } - - return $collectionConfig; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return string - * - * Injects a collection field variables into the parser - */ - public function renderFormCollectionField($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if (!$repeat) { - return $content; - } - - $form = $this->getInstanceFromParams($params); - /** @var \Symfony\Component\Form\Form $row */ - $row = $this->getSymfonyFormFromParams($params, "row", true); - $field = $this->getParam($params, "field"); - - $formField = $this->retrieveField($field, $row->all(), $form->getName()); - - $formFieldConfig = $formField->getConfig(); - - $this->assignFieldValues( - $template, - $this->buildFieldName($formField), - $formField->getViewData(), - $formFieldConfig->getType(), - $this->findCollectionFieldFormView($form->getView(), $formField) - ); - - return ''; - } - - /** - * @param FormView $formView - * @param SymfonyForm $formField - * @return array - */ - protected function findCollectionFieldFormView(FormView $formView, SymfonyForm $formField) - { - $formFieldParentList = []; - - do { - // don't need to set first form name child - if (null === $formField->getParent()) { - break; - } - - $formFieldParentList[] = $formField->getConfig()->getName(); - - } while (null !== $formField = $formField->getParent()); - - $formFieldParentList = array_reverse($formFieldParentList); - - foreach ($formFieldParentList as $val) { - $formView = $formView->children[$val]; - } - - return $formView->vars; - } - - /** - * @param FormInterface $form - * @param array $tree - * @return string - * - * Tail recursive method that builds the field full name - */ - protected function buildFieldName(FormInterface $form, array &$tree = array()) - { - $config = $form->getConfig(); - $parent = $form->getParent(); - $hasParent = null !== $parent; - - if (null !== $proprietyPath = $config->getPropertyPath()) { - $name = (string)$proprietyPath; - } else { - $name = $config->getName(); - - if ($name === null) { - $name = ''; - } elseif ($name !== '' && $hasParent) { - $name = "[$name]"; - } - } - - array_unshift($tree, $name); - - if (!$hasParent) { - return implode("", $tree); - } - - return $this->buildFieldName($parent, $tree); - } - - /** - * @param $params - * @param \Smarty_Internal_Template $template - * @return mixed - * - * Counts collection entries - */ - public function formCollectionCount($params, \Smarty_Internal_Template $template) - { - /** - * Get parameters - */ - $form = $this->getInstanceFromParams($params); - $row = $this->getSymfonyFormFromParams($params, "row"); - $collection = $this->resolveCollection($this->getParam($params, "collection"), $form); - - $hash = $this->initializeCollection($form, $collection, $row); - - return $this->formCollectionCount[$hash]["total_count"]; - } - - /** - * @param BaseForm $form - * @param SymfonyForm $collection - * @param SymfonyForm $row - * @return string - * - * Initialize a collection into this class ( values stack, counting table ) - */ - protected function initializeCollection(BaseForm $form, SymfonyForm $collection, SymfonyForm $row = null) - { - $hash = $this->getFormStackHash($form, $collection); - - if (!isset($this->formCollectionStack[$hash])) { - $this->formCollectionStack[$hash] = $collection->all(); - } - - if (!isset($this->formCollectionCount[$hash])) { - $this->formCollectionCount[$hash] = [ - "count" => 0, - "limit" => 0, - "total_count" => count($this->formCollectionStack[$hash]), - ]; - } - - return $hash; - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor("block", "form", $this, "generateForm"), - new SmartyPluginDescriptor("block", "form_field", $this, "renderFormField"), - new SmartyPluginDescriptor("block", "form_tagged_fields", $this, "renderTaggedFormFields"), - new SmartyPluginDescriptor("function", "form_hidden_fields", $this, "renderHiddenFormField"), - new SmartyPluginDescriptor("function", "form_enctype", $this, "formEnctype"), - new SmartyPluginDescriptor("block", "form_error", $this, "formError"), - new SmartyPluginDescriptor("function", "form_field_attributes", $this, "standardFormFieldAttributes"), - new SmartyPluginDescriptor("function", "render_form_field", $this, "standardFormFieldRendering"), - new SmartyPluginDescriptor("block", "custom_render_form_field", $this, "customFormFieldRendering"), - new SmartyPluginDescriptor("block", "form_collection", $this, "renderFormCollection"), - new SmartyPluginDescriptor("block", "form_collection_field", $this, "renderFormCollectionField"), - new SmartyPluginDescriptor("function", "form_collection_count", $this, "formCollectionCount"), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Format.php b/local/local/modules/TheliaSmarty/Template/Plugins/Format.php deleted file mode 100644 index 97220fde..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Format.php +++ /dev/null @@ -1,496 +0,0 @@ - - * @author Benjamin Perche - */ -class Format extends AbstractSmartyPlugin -{ - private static $dateKeys = ["day", "month", "year"]; - private static $timeKeys = ["hour", "minute", "second"]; - - /** @var RequestStack */ - protected $requestStack; - - public function __construct(RequestStack $requestStack) - { - $this->requestStack = $requestStack; - } - - /** - * return date in expected format - * - * available parameters : - * date => DateTime object (mandatory) - * format => expected format - * output => list of default system format. Values available : - * date => date format - * time => time format - * datetime => datetime format (default) - * - * ex : - * {format_date date=$dateTimeObject format="Y-m-d H:i:s"} will output the format with specific format - * {format_date date=$dateTimeObject format="l F j" locale="fr_FR"} will output the format with specific format (see date() function) - * {format_date date=$dateTimeObject output="date"} will output the date using the default date system format - * {format_date date=$dateTimeObject} will output with the default datetime system format - * - * @param array $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string - */ - public function formatDate($params, $template = null) - { - $date = $this->getParam($params, "date", false); - - if ($date === false) { - // Check if we have a timestamp - $timestamp = $this->getParam($params, "timestamp", false); - - if ($timestamp === false) { - // No timestamp => error - throw new SmartyPluginException("Either date or timestamp is a mandatory parameter in format_date function"); - } else { - $date = new \DateTime(); - $date->setTimestamp($timestamp); - } - } elseif (is_array($date)) { - $keys = array_keys($date); - - $isDate = $this->arrayContains(static::$dateKeys, $keys); - $isTime = $this->arrayContains(static::$timeKeys, $keys); - - // If this is not a date, fallback on today - // If this is not a time, fallback on midnight - $dateFormat = $isDate ? sprintf("%d-%d-%d", $date["year"], $date["month"], $date["day"]) : (new \DateTime())->format("Y-m-d"); - $timeFormat = $isTime ? sprintf("%d:%d:%d", $date["hour"], $date["minute"], $date["second"]) : "0:0:0"; - - $date = new \DateTime(sprintf("%s %s", $dateFormat, $timeFormat)); - } - - if (!($date instanceof \DateTime)) { - try { - $date = new \DateTime($date); - } catch (\Exception $e) { - return ""; - } - } - - $format = $this->getParam($params, "format", false); - - if ($format === false) { - $format = DateTimeFormat::getInstance($this->requestStack->getCurrentRequest())->getFormat($this->getParam($params, "output", null)); - } - - $locale = $this->getParam($params, 'locale', false); - - if (false === $locale) { - $value = $date->format($format); - } else { - $value = $this->formatDateWithLocale($date, $locale, $format); - } - - return $value; - } - - private function formatDateWithLocale(\DateTime $date, $locale, $format) - { - if (false === strpos($format, '%')) { - $formatter = new IntlDateFormatter($locale, IntlDateFormatter::FULL, IntlDateFormatter::FULL); - - $icuFormat = $this->convertDatePhpToIcu($format); - $formatter->setPattern($icuFormat); - - $localizedDate = $formatter->format($date); - } else { - // for backward compatibility - if (function_exists('setlocale')) { - // Save the current locale - $systemLocale = setlocale(LC_TIME, 0); - setlocale(LC_TIME, $locale); - $localizedDate = strftime($format, $date->getTimestamp()); - // Restore the locale - setlocale(LC_TIME, $systemLocale); - } else { - // setlocale() function not available => error - throw new SmartyPluginException("The setlocale() function is not available on your system."); - } - } - - return $localizedDate; - } - - /** - * - * display numbers in expected format - * - * available parameters : - * number => int or float number - * decimals => how many decimals format expected - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * - * ex : {format_number number="1246.12" decimals="1" dec_point="," thousands_sep=" "} will output "1 246,1" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatNumber($params, $template = null) - { - $number = $this->getParam($params, "number", false); - - if ($number === false || $number === '') { - return ""; - } - - return NumberFormat::getInstance($this->requestStack->getCurrentRequest())->format( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null) - ); - } - - /** - * - * display a amount in expected format - * - * available parameters : - * number => int or float number - * decimals => how many decimals format expected - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * symbol => Currency symbol - * - * ex : {format_money number="1246.12" decimals="1" dec_point="," thousands_sep=" " symbol="€"} will output "1 246,1 €" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatMoney($params, $template = null) - { - $number = $this->getParam($params, "number", false); - - if ($number === false || $number === '') { - return ""; - } - - if ($this->getParam($params, "symbol", null) === null) { - return MoneyFormat::getInstance($this->requestStack->getCurrentRequest())->formatByCurrency( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null), - $this->getParam($params, "currency_id", null) - ); - } - - return MoneyFormat::getInstance($this->requestStack->getCurrentRequest())->format( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null), - $this->getParam($params, "symbol", null) - ); - } - - - /** - * return two-dimensional arrays in string - * - * available parameters : - * values => array 2D ['key A' => ['value 1', 'value 2'], 'key B' => ['value 3', 'value 4']] - * separators => ['key value separator', 'value value separator', 'key key separator'] - * - * ex : - * {format_array_2d values=['Colors' => ['Green', 'Yellow', 'Red'], 'Material' => ['Wood']] separators=[' : ', ' / ', ' | ']} - * will output the format with specific format : "Colors : Green / Yellow / Red | Material : Wood" - * - * @param $params - * @return string - */ - public function formatTwoDimensionalArray($params) - { - $output = ''; - $values = $this->getParam($params, "values", null); - $separators = $this->getParam($params, "separators", [' : ', ' / ', ' | ']); - - if (!is_array($values)) { - return $output; - } - - foreach ($values as $key => $value) { - if ($output !== '') { - $output .= $separators[2]; - } - - $output .= $key . $separators[0]; - - if (!is_array($value)) { - $output .= $value; - continue; - } - - $output .= implode($separators[1], $value); - } - return $output; - } - - protected function arrayContains(array $expected, array $hayStack) - { - foreach ($expected as $value) { - if (!in_array($value, $hayStack)) { - return false; - } - } - - return true; - } - - /** - * This function comes from [Yii framework](http://www.yiiframework.com/) - * - * - * Converts a date format pattern from [php date() function format][] to [ICU format][]. - * - * The conversion is limited to date patterns that do not use escaped characters. - * Patterns like `jS \o\f F Y` which will result in a date like `1st of December 2014` may not be converted correctly - * because of the use of escaped characters. - * - * Pattern constructs that are not supported by the ICU format will be removed. - * - * [php date() function format]: http://php.net/manual/en/function.date.php - * [ICU format]: http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax - * - * @param string $pattern date format pattern in php date()-function format. - * @return string The converted date format pattern. - */ - protected function convertDatePhpToIcu($pattern) - { - // http://php.net/manual/en/function.date.php - return strtr( - $pattern, - [ - // Day - 'd' => 'dd', // Day of the month, 2 digits with leading zeros 01 to 31 - 'D' => 'eee', // A textual representation of a day, three letters Mon through Sun - 'j' => 'd', // Day of the month without leading zeros 1 to 31 - 'l' => 'eeee', // A full textual representation of the day of the week Sunday through Saturday - 'N' => 'e', // ISO-8601 numeric representation of the day of the week, 1 (for Monday) through 7 (for Sunday) - 'S' => '', // English ordinal suffix for the day of the month, 2 characters st, nd, rd or th. Works well with j - 'w' => '', // Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday) - 'z' => 'D', // The day of the year (starting from 0) 0 through 365 - // Week - 'W' => 'w', // ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) Example: 42 (the 42nd week in the year) - // Month - 'F' => 'MMMM', // A full textual representation of a month, January through December - 'm' => 'MM', // Numeric representation of a month, with leading zeros 01 through 12 - 'M' => 'MMM', // A short textual representation of a month, three letters Jan through Dec - 'n' => 'M', // Numeric representation of a month, without leading zeros 1 through 12, not supported by ICU but we fallback to "with leading zero" - 't' => '', // Number of days in the given month 28 through 31 - // Year - 'L' => '', // Whether it's a leap year, 1 if it is a leap year, 0 otherwise. - 'o' => 'Y', // ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. - 'Y' => 'yyyy', // A full numeric representation of a year, 4 digits Examples: 1999 or 2003 - 'y' => 'yy', // A two digit representation of a year Examples: 99 or 03 - // Time - 'a' => 'a', // Lowercase Ante meridiem and Post meridiem, am or pm - 'A' => 'a', // Uppercase Ante meridiem and Post meridiem, AM or PM, not supported by ICU but we fallback to lowercase - 'B' => '', // Swatch Internet time 000 through 999 - 'g' => 'h', // 12-hour format of an hour without leading zeros 1 through 12 - 'G' => 'H', // 24-hour format of an hour without leading zeros 0 to 23h - 'h' => 'hh', // 12-hour format of an hour with leading zeros, 01 to 12 h - 'H' => 'HH', // 24-hour format of an hour with leading zeros, 00 to 23 h - 'i' => 'mm', // Minutes with leading zeros 00 to 59 - 's' => 'ss', // Seconds, with leading zeros 00 through 59 - 'u' => '', // Microseconds. Example: 654321 - // Timezone - 'e' => 'VV', // Timezone identifier. Examples: UTC, GMT, Atlantic/Azores - 'I' => '', // Whether or not the date is in daylight saving time, 1 if Daylight Saving Time, 0 otherwise. - 'O' => 'xx', // Difference to Greenwich time (GMT) in hours, Example: +0200 - 'P' => 'xxx', // Difference to Greenwich time (GMT) with colon between hours and minutes, Example: +02:00 - 'T' => 'zzz', // Timezone abbreviation, Examples: EST, MDT ... - 'Z' => '', // Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. -43200 through 50400 - // Full Date/Time - 'c' => 'yyyy-MM-dd\'T\'HH:mm:ssxxx', // ISO 8601 date, e.g. 2004-02-12T15:19:21+00:00 - 'r' => 'eee, dd MMM yyyy HH:mm:ss xx', // RFC 2822 formatted date, Example: Thu, 21 Dec 2000 16:01:07 +0200 - 'U' => '', // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) - ] - ); - } - - /** - * - * display an address in expected format - * - * available parameters : - * address => the id of the address to display - * order_address => the id of the order address to display - * from_country_id => the country id - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * symbol => Currency symbol - * - * ex : {format_money number="1246.12" decimals="1" dec_point="," thousands_sep=" " symbol="€"} will output "1 246,1 €" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatAddress($params, $template = null) - { - $postal = filter_var( - $this->getParam($params, "postal", null), - FILTER_VALIDATE_BOOLEAN - ); - - $html = filter_var( - $this->getParam($params, "html", true), - FILTER_VALIDATE_BOOLEAN - ); - - $htmlTag = $this->getParam($params, "html_tag", "p"); - $originCountry = $this->getParam($params, "origin_country", null); - $locale = $this->getParam($params, "locale", $this->getSession()->getLang()->getLocale()); - - // extract html attributes - $htmlAttributes = []; - foreach ($params as $k => $v) { - if (strpos($k, 'html_') !== false && $k !== 'html_tag') { - $htmlAttributes[substr($k, 5)] = $v; - } - } - - // get address or order address - $address = null; - if (null !== $id = $this->getParam($params, "address", null)) { - if (null === $address = AddressQuery::create()->findPk($id)) { - return ''; - } - } elseif (null !== $id = $this->getParam($params, "order_address", null)) { - if (null === $address = OrderAddressQuery::create()->findPk($id)) { - return ''; - } - } else { - // try to parse arguments to build address - $address = $this->getAddressFormParams($params); - } - - if (null === $address) { - throw new SmartyPluginException( - "Either address, order_address or full list of address fields should be provided" - ); - } - - $addressFormat = AddressFormat::getInstance(); - if ($postal) { - if ($address instanceof Address) { - $formattedAddress = $addressFormat->postalLabelFormat($address, $locale, $originCountry); - } else { - $formattedAddress = $addressFormat->postalLabelFormatTheliaAddress($address, $locale, $originCountry); - } - } else { - if ($address instanceof Address) { - $formattedAddress = $addressFormat->format($address, $locale, $html, $htmlTag, $htmlAttributes); - } else { - $formattedAddress = $addressFormat->formatTheliaAddress($address, $locale, $html, $htmlTag, $htmlAttributes); - } - } - - return $formattedAddress; - } - - protected function getAddressFormParams($params) - { - // Check if there is arguments - $addressArgs = [ - 'country_code', - 'administrative_area', - 'locality', - 'dependent_locality', - 'postal_code', - 'sorting_code', - 'address_line1', - 'address_line2', - 'organization', - 'recipient', - 'locale' - ]; - $valid = false; - - $address = new Address(); - - foreach ($addressArgs as $arg) { - if (null !== $argVal = $this->getParam($params, $arg, null)) { - $valid = true; - $functionName = 'with' . Container::camelize($arg); - $address = $address->$functionName($argVal); - } - } - - if (false === $valid) { - return null; - } - - return $address; - } - - /** - * @return SmartyPluginDescriptor[] - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor("function", "format_date", $this, "formatDate"), - new SmartyPluginDescriptor("function", "format_number", $this, "formatNumber"), - new SmartyPluginDescriptor("function", "format_money", $this, "formatMoney"), - new SmartyPluginDescriptor("function", "format_array_2d", $this, "formatTwoDimensionalArray"), - new SmartyPluginDescriptor("function", "format_address", $this, "formatAddress"), - ); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Hook.php b/local/local/modules/TheliaSmarty/Template/Plugins/Hook.php deleted file mode 100644 index c9edadc2..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Hook.php +++ /dev/null @@ -1,476 +0,0 @@ - - */ -class Hook extends AbstractSmartyPlugin -{ - private $dispatcher; - - /** @var Translator */ - protected $translator; - - /** @var Module */ - protected $smartyPluginModule = null; - - /** @var array */ - protected $hookResults = array(); - - /** @var array */ - protected $varstack = array(); - - /** @var bool debug */ - protected $debug = false; - - public function __construct($debug, ContainerAwareEventDispatcher $dispatcher) - { - $this->debug = $debug; - $this->dispatcher = $dispatcher; - $this->translator = $dispatcher->getContainer()->get("thelia.translator"); - $this->hookResults = array(); - } - - /** - * Generates the content of the hook - * - * {hook name="hook_code" var1="value1" var2="value2" ... } - * - * This function create an event, feed it with the custom variables passed to the function (var1, var2, ...) and - * dispatch it to the hooks that respond to it. - * - * The name of the event is `hook.{context}.{hook_code}` where : - * * context : the id of the context of the smarty render : 1: frontoffice, 2: backoffice, 3: email, 4: pdf - * * hook_code : the code of the hook - * - * The event collects all the fragments of text rendered in each modules functions that listen to this event. - * Finally, this fragments are concatenated and injected in the template - * - * @param array $params the params passed in the smarty function - * @param \TheliaSmarty\Template\SmartyParser $smarty the smarty parser - * - * @return string the contents generated by modules - */ - public function processHookFunction($params, &$smarty) - { - $hookName = $this->getParam($params, 'name'); - $module = intval($this->getParam($params, 'module', 0)); - $moduleCode = $this->getParam($params, 'modulecode', ""); - - $type = $smarty->getTemplateDefinition()->getType(); - - $event = new HookRenderEvent($hookName, $params); - - $event->setArguments($this->getArgumentsFromParams($params)); - - $eventName = sprintf('hook.%s.%s', $type, $hookName); - - // this is a hook specific to a module - if (0 === $module && "" !== $moduleCode) { - if (null !== $mod = ModuleQuery::create()->findOneByCode($moduleCode)) { - $module = $mod->getId(); - } - } - if (0 !== $module) { - $eventName .= '.' . $module; - } - - $this->getDispatcher()->dispatch($eventName, $event); - - $content = trim($event->dump()); - - if ($this->debug && $smarty->getRequest()->get('SHOW_HOOK')) { - $content = self::showHook($hookName, $params) . $content; - } - - $this->hookResults[$hookName] = $content; - - // support for compatibility with module_include - if ($type === TemplateDefinition::BACK_OFFICE) { - $content .= $this->moduleIncludeCompat($params, $smarty); - } - - return $content; - } - - /** - * Call the plugin function module_include for backward compatibility. - * - * @param array $params the params passed in the smarty function - * @param \TheliaSmarty\Template\SmartyParser $smarty the smarty parser - * - * @return string the contents generated by module_include function - */ - protected function moduleIncludeCompat($params, &$smarty) - { - $plugin = $this->getSmartyPluginModule(); - $params = array( - "location" => $this->getParam($params, 'location', null), - "module" => $this->getParam($params, 'modulecode', null), - "countvar" => $this->getParam($params, 'countvar', null) - ); - - return $plugin->theliaModule($params, $smarty); - } - - /** - * get the smarty plugin Module - * - * @return Module the smarty plugin Module - */ - protected function getSmartyPluginModule() - { - if (null === $this->smartyPluginModule) { - $this->smartyPluginModule = $this->dispatcher->getContainer()->get("smarty.plugin.module"); - } - - return $this->smartyPluginModule; - } - - protected function showHook($hookName, $params) - { - $content = '
' . $hookName; - - foreach ($params as $name => $value) { - if ($name !== 'location' && $name !== "name") { - $type = ''; - if (is_object($value)) { - $value = get_class($value); - $type = 'object'; - } elseif (is_array($value)) { - $value = implode(',', $value); - $type = 'array'; - } elseif (is_int($value)) { - $type = 'float'; - } elseif (is_int($value)) { - $type = 'int'; - } elseif (is_string($value)) { - $value = (strlen($value) > 30) ? substr($value, 0, 30) . '...' : $value; - $type = 'string'; - } - - if ($type !== '') { - $type = '' . $type . ' '; - } - - $content .= '' . $name . ' = ' . $type . $value . ''; - } - } - - return $content . '
'; - } - - /** - * Process the content of the hook block. - * - * {hookblock name="hook_code" var1="value1" var2="value2" ... } - * - * This function create an event, feed it with the custom variables passed to the function (var1, var2, ...) and - * dispatch it to the hooks that respond to it. - * - * The name of the event is `hook.{context}.{hook_code}` where : - * * context : the id of the context of the smarty render : 1: frontoffice, 2: backoffice, 3: email, 4: pdf - * * hook_code : the code of the hook - * - * The event collects all the fragments generated by modules that listen to this event and add it to a fragmentBag. - * This fragmentBag is not used directly. This is the forhook block that iterates over the fragmentBag to inject - * data in the template. - * - * @param array $params - * @param string $content - * @param \TheliaSmarty\Template\SmartyParser $smarty - * @param bool $repeat - * - * @return string the generated content - */ - public function processHookBlock($params, $content, $smarty, &$repeat) - { - $hookName = $this->getParam($params, 'name'); - $module = intval($this->getParam($params, 'module', 0)); - // explicit definition of variable that can be returned - $fields = preg_replace( - '|[^a-zA-Z0-9,\-_]|', - '', - $this->getParam($params, 'fields', '') - ); - $fields = ('' !== $fields) ? explode(",", $fields) : []; - - if (!$repeat) { - if ($this->debug && $smarty->getRequest()->get('SHOW_HOOK')) { - $content = self::showHook($hookName, $params) . $content; - } - - return $content; - } - - $type = $smarty->getTemplateDefinition()->getType(); - - $event = new HookRenderBlockEvent($hookName, $params, $fields); - - $event->setArguments($this->getArgumentsFromParams($params)); - - $eventName = sprintf('hook.%s.%s', $type, $hookName); - - // this is a hook specific to a module - if (0 !== $module) { - $eventName .= '.' . $module; - } - - $this->getDispatcher()->dispatch($eventName, $event); - - // save results so we can use it in forHook block - $this->hookResults[$hookName] = $event->get(); - } - - /** - * Process a {forhook rel="hookname"} ... {/forhook} - * - * The forhook iterates over the results return by a hookblock : - * - * {hookblock name="product.additional"} - * {forhook rel="product.additional"} - *
- *

{$title}

- *

{$content}

- *
- * {/forhook} - * {/hookblock} - * - * @param array $params - * @param string $content - * @param \TheliaSmarty\Template\SmartyParser $smarty - * @param bool $repeat - * - * @throws \InvalidArgumentException - * @return string the generated content - */ - public function processForHookBlock($params, $content, $smarty, &$repeat) - { - $rel = $this->getParam($params, 'rel'); - if (null == $rel) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in forHook arguments") - ); - } - - /** @var FragmentBag $fragments */ - $fragments = null; - - // first call - if ($content === null) { - if (!array_key_exists($rel, $this->hookResults)) { - throw new \InvalidArgumentException( - $this->translator->trans("Related hook name '%name' is not defined.", ['%name' => $rel]) - ); - } - - $fragments = $this->hookResults[$rel]; - $fragments->rewind(); - - if ($fragments->isEmpty()) { - $repeat = false; - } - } else { - $fragments = $this->hookResults[$rel]; - $fragments->next(); - } - - if ($fragments->valid()) { - /** @var Fragment $fragment */ - $fragment = $fragments->current(); - - // On first iteration, save variables that may be overwritten by this hook - if (!isset($this->varstack[$rel])) { - $saved_vars = array(); - - $varlist = $fragment->getVars(); - - foreach ($varlist as $var) { - $saved_vars[$var] = $smarty->getTemplateVars($var); - } - - $this->varstack[$rel] = $saved_vars; - } - - foreach ($fragment->getVarVal() as $var => $val) { - $smarty->assign($var, $val); - } - // continue iteration - $repeat = true; - } - - // end - if (!$repeat) { - // Restore previous variables values before terminating - if (isset($this->varstack[$rel])) { - foreach ($this->varstack[$rel] as $var => $value) { - $smarty->assign($var, $value); - } - - unset($this->varstack[$rel]); - } - } - - if ($content !== null) { - if ($fragments->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * Process {elsehook rel="hookname"} ... {/elsehook} block - * - * @param array $params hook parameters - * @param string $content hook text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * - * @return string the hook output - */ - public function elseHook( - $params, - $content, - /** @noinspection PhpUnusedParameterInspection */ $template, - &$repeat - ) { - // When encountering close tag, check if hook has results. - if ($repeat === false) { - return $this->checkEmptyHook($params) ? $content : ''; - } - - return ''; - } - - /** - * Process {ifhook rel="hookname"} ... {/ifhook} block - * - * @param array $params hook parameters - * @param string $content hook text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * - * @return string the hook output - */ - public function ifHook($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - // When encountering close tag, check if hook has results. - if ($repeat === false) { - return $this->checkEmptyHook($params) ? '' : $content; - } - - return ''; - } - - /** - * Check if a hook has returned results. The hook should have been executed before, or an - * InvalidArgumentException is thrown - * - * @param array $params - * - * @return boolean true if the hook is empty - * @throws \InvalidArgumentException - */ - protected function checkEmptyHook($params) - { - $hookName = $this->getParam($params, 'rel'); - - if (null == $hookName) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in ifhook/elsehook arguments") - ); - } - - if (!isset($this->hookResults[$hookName])) { - throw new \InvalidArgumentException( - $this->translator->trans("Related hook name '%name' is not defined.", ['%name' => $hookName]) - ); - } - - return (is_string($this->hookResults[$hookName]) && '' === $this->hookResults[$hookName] - || !is_string($this->hookResults[$hookName]) && $this->hookResults[$hookName]->isEmpty() - ); - } - - /** - * Clean the params of the params passed to the hook function or block to feed the arguments of the event - * with relevant arguments. - * - * @param $params - * - * @return array - */ - protected function getArgumentsFromParams($params) - { - $args = array(); - $excludes = array("name", "before", "separator", "after", "fields"); - - if (is_array($params)) { - foreach ($params as $key => $value) { - if (!in_array($key, $excludes)) { - $args[$key] = $value; - } - } - } - - return $args; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'hook', $this, 'processHookFunction'), - new SmartyPluginDescriptor('block', 'hookblock', $this, 'processHookBlock'), - new SmartyPluginDescriptor('block', 'forhook', $this, 'processForHookBlock'), - new SmartyPluginDescriptor('block', 'elsehook', $this, 'elseHook'), - new SmartyPluginDescriptor('block', 'ifhook', $this, 'ifHook'), - ); - } - - /** - * Return the event dispatcher, - * - * @return \Symfony\Component\EventDispatcher\EventDispatcher - */ - public function getDispatcher() - { - return $this->dispatcher; - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Module.php b/local/local/modules/TheliaSmarty/Template/Plugins/Module.php deleted file mode 100644 index b0c8123a..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Module.php +++ /dev/null @@ -1,104 +0,0 @@ -debug = $debug; - $this->requestStack = $requestStack; - } - /** - * Process theliaModule template inclusion function - * - * This function accepts two parameters: - * - * - location : this is the location in the admin template. Example: folder-edit'. The function will search for - * AdminIncludes/.html file, and fetch it as a Smarty template. - * - countvar : this is the name of a template variable where the number of found modules includes will be assigned. - * - * @param array $params - * @param \Smarty_Internal_Template $template - * @internal param \Thelia\Core\Template\Smarty\Plugins\unknown $smarty - * - * @return string - */ - public function theliaModule($params, \Smarty_Internal_Template $template) - { - $content = null; - $count = 0; - if (false !== $location = $this->getParam($params, 'location', false)) { - if ($this->debug === true && $this->requestStack->getCurrentRequest()->get('SHOW_INCLUDE')) { - echo sprintf('
%s
', $location); - } - - $moduleLimit = $this->getParam($params, 'module', null); - - $modules = ModuleQuery::getActivated(); - - /** @var \Thelia\Model\Module $module */ - foreach ($modules as $module) { - if (null !== $moduleLimit && $moduleLimit != $module->getCode()) { - continue; - } - - $file = $module->getAbsoluteAdminIncludesPath() . DS . $location . '.html'; - - if (file_exists($file)) { - $output = trim(file_get_contents($file)); - - if (! empty($output)) { - $content .= $output; - - $count++; - } - } - } - } - - if (false !== $countvarname = $this->getParam($params, 'countvar', false)) { - $template->assign($countvarname, $count); - } - - if (! empty($content)) { - return $template->fetch(sprintf("string:%s", $content)); - } - - return ""; - } - - /** - * Define the various smarty plugins hendled by this class - * - * @return an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'module_include', $this, 'theliaModule'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Render.php b/local/local/modules/TheliaSmarty/Template/Plugins/Render.php deleted file mode 100644 index 2f7abd3d..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Render.php +++ /dev/null @@ -1,167 +0,0 @@ - - */ -class Render extends AbstractSmartyPlugin -{ - /** @var ControllerResolver */ - protected $controllerResolver; - - /** @var RequestStack */ - protected $requestStack; - - /** @var Container */ - protected $container; - - /** - * @param ControllerResolver $controllerResolver - * @param RequestStack $requestStack - * @param Container $container - */ - public function __construct(ControllerResolver $controllerResolver, RequestStack $requestStack, Container $container) - { - $this->controllerResolver = $controllerResolver; - $this->requestStack = $requestStack; - $this->container = $container; - } - - /** - * @param $params - * @return mixed|string - * @throws SmartyPluginException - */ - public function processRender($params) - { - if (null === $params["action"]) { - throw new SmartyPluginException( - "You must declare the 'action' parameter in the 'render' smarty function" - ); - } - - $request = $this->prepareRequest($params); - - $this->requestStack->push($request); - - $controller = $this->controllerResolver->getController($request); - $controllerParameters = $this->controllerResolver->getArguments($request, $controller); - - $response = call_user_func_array($controller, $controllerParameters); - - $this->requestStack->pop(); - - if ($response instanceof Response) { - return $response->getContent(); - } - - return $response; - } - - protected function prepareRequest(array $params) - { - // Get action - $action = $this->popParameter($params, "action"); - - // Then get and filter query, request and method - $query = $this->popParameter($params, "query"); - $query = $this->filterArrayStrParam($query); - $request = $this->popParameter($params, "request"); - $request = $this->filterArrayStrParam($request); - $method = strtoupper($this->popParameter($params, "method", "GET")); - - // Then build the request - $requestObject = clone $this->requestStack->getCurrentRequest(); - $requestObject->query = new ParameterBag($query); - $requestObject->request = new ParameterBag($request); - $requestObject->attributes = new ParameterBag(["_controller" => $action]); - - // Apply the method - if (!empty($request) && "GET" === $method) { - $requestObject->setMethod("POST"); - } else { - $requestObject->setMethod($method); - } - - // Then all the attribute parameters - foreach ($params as $key => $attribute) { - $requestObject->attributes->set($key, $attribute); - } - - return $requestObject; - } - - /** - * @param $param - * @return array - * - * If $param is an array, return it. - * Else parser it to translate a=b&c=d&e[]=f&g[h]=i to - * ["a"=>"b","c"=>"d","e"=>["f"],"g"=>["h"=>"i"] - */ - protected function filterArrayStrParam($param) - { - if (is_array($param)) { - return $param; - } - - parse_str($param, $param); - - if (false === $param) { - return []; - } - - return $param; - } - - /** - * @param array $params - * @param $name - * @param null $default - * @return mixed - * - * Get a parameter then unset it - */ - protected function popParameter(array $params, $name, $default = null) - { - $param = $this->getParam($params, $name, $default); - - if (array_key_exists($name, $params)) { - unset($params[$name]); - } - - return $param; - } - - /** - * @return SmartyPluginDescriptor[] an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'render', $this, 'processRender'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Security.php b/local/local/modules/TheliaSmarty/Template/Plugins/Security.php deleted file mode 100644 index bd14bfdc..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Security.php +++ /dev/null @@ -1,146 +0,0 @@ -securityContext = $securityContext; - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - } - - /** - * Process security check function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - * @throws \Thelia\Core\Security\Exception\AuthenticationException - * @throws AuthenticationException - * @throws AuthorizationException - */ - public function checkAuthFunction($params, &$smarty) - { - $roles = $this->explode($this->getParam($params, 'role')); - $resources = $this->explode($this->getParam($params, 'resource')); - $modules = $this->explode($this->getParam($params, 'module')); - $accesses = $this->explode($this->getParam($params, 'access')); - - if (! $this->securityContext->isGranted($roles, $resources, $modules, $accesses)) { - if (null === $this->securityContext->checkRole($roles)) { - // The current user is not logged-in. - $ex = new AuthenticationException( - sprintf( - "User not granted for roles '%s', to access resources '%s' with %s.", - implode(',', $roles), - implode(',', $resources), - implode(',', $accesses) - ) - ); - - $loginTpl = $this->getParam($params, 'login_tpl'); - - if (null != $loginTpl) { - $ex->setLoginTemplate($loginTpl); - } - } else { - // We have a logged-in user, who do not have the proper permission. Issue an AuthorizationException. - $ex = new AuthorizationException( - sprintf( - "User not granted for roles '%s', to access resources '%s' with %s.", - implode(',', $roles), - implode(',', $resources), - implode(',', $accesses) - ) - ); - } - - throw $ex; - } - - return ''; - } - - public function checkCartNotEmptyFunction($params, &$smarty) - { - $cart = $this->getSession()->getSessionCart($this->dispatcher); - if ($cart===null || $cart->countCartItems() == 0) { - throw new OrderException('Cart must not be empty', OrderException::CART_EMPTY, array('empty' => 1)); - } - - return ""; - } - - public function checkValidDeliveryFunction($params, &$smarty) - { - $order = $this->getSession()->getOrder(); - /* Does address and module still exists ? We assume address owner can't change neither module type */ - if ($order !== null) { - $checkAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - $checkModule = ModuleQuery::create()->findPk($order->getDeliveryModuleId()); - } else { - $checkAddress = $checkModule = null; - } - - if (null === $order || null == $checkAddress || null === $checkModule) { - throw new OrderException('Delivery must be defined', OrderException::UNDEFINED_DELIVERY, array('missing' => 1)); - } - - return ""; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'check_auth', $this, 'checkAuthFunction'), - new SmartyPluginDescriptor('function', 'check_cart_not_empty', $this, 'checkCartNotEmptyFunction'), - new SmartyPluginDescriptor('function', 'check_valid_delivery', $this, 'checkValidDeliveryFunction'), - ); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php b/local/local/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php deleted file mode 100644 index f2bb5ad8..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php +++ /dev/null @@ -1,463 +0,0 @@ -container = $container; - $this->request = $container->get('request_stack')->getCurrentRequest(); - $this->dispatcher = $container->get('event_dispatcher'); - $this->securityContext = $container->get('thelia.securityContext'); - $this->translator = $container->get("thelia.translator"); - } - - /** - * @param string $loopName - * @return PropelModelPager - * @throws \InvalidArgumentException if no pagination was found for loop - */ - public static function getPagination($loopName) - { - if (array_key_exists($loopName, self::$pagination)) { - return self::$pagination[$loopName]; - } else { - throw new \InvalidArgumentException( - Translator::getInstance()->trans("No pagination currently defined for loop name '%name'", ['%name' => $loopName ]) - ); - } - } - - /** - * Process the count function: executes a loop and return the number of items found - * - * @param array $params parameters array - * @param \Smarty_Internal_Template $template - * - * @return int the item count - * @throws \InvalidArgumentException if a parameter is missing - * - */ - public function theliaCount($params, /** @noinspection PhpUnusedParameterInspection */ $template) - { - $type = $this->getParam($params, 'type'); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in {count} loop arguments") - ); - } - - $loop = $this->createLoopInstance($params); - - return $loop->count(); - } - - /** - * Process {loop name="loop name" type="loop type" ... } ... {/loop} block - * - * @param array $params - * @param string $content - * @param \Smarty_Internal_Template $template - * @param boolean $repeat - * - * @throws \InvalidArgumentException - * - * @return void|string - */ - public function theliaLoop($params, $content, $template, &$repeat) - { - $name = $this->getParam($params, 'name'); - - if (null == $name) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'name' parameter in loop arguments") - ); - } - - $type = $this->getParam($params, 'type'); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in loop arguments") - ); - } - - if ($content === null) { - // Check if a loop with the same name exists in the current scope, and abort if it's the case. - if (array_key_exists($name, $this->varstack)) { - throw new \InvalidArgumentException( - $this->translator->trans("A loop named '%name' already exists in the current scope.", ['%name' => $name]) - ); - } - - $loop = $this->createLoopInstance($params); - - self::$pagination[$name] = null; - - // We have to clone the result, as exec() returns a cached LoopResult object, which may cause side effects - // if loops with the same argument set are nested (see https://github.com/thelia/thelia/issues/2213) - $loopResults = clone($loop->exec(self::$pagination[$name])); - - $loopResults->rewind(); - - $this->loopstack[$name] = $loopResults; - - // No results ? The loop is terminated, do not evaluate loop text. - if ($loopResults->isEmpty()) { - $repeat = false; - } - } else { - $loopResults = $this->loopstack[$name]; - - $loopResults->next(); - } - - if ($loopResults->valid()) { - $loopResultRow = $loopResults->current(); - - // On first iteration, save variables that may be overwritten by this loop - if (! isset($this->varstack[$name])) { - $saved_vars = array(); - - $varlist = $loopResultRow->getVars(); - - foreach ($varlist as $var) { - $saved_vars[$var] = $template->getTemplateVars($var); - } - - $this->varstack[$name] = $saved_vars; - } - - foreach ($loopResultRow->getVarVal() as $var => $val) { - $template->assign($var, $val); - } - - $repeat = true; - } - - // Loop is terminated. Cleanup. - if (! $repeat) { - // Restore previous variables values before terminating - if (isset($this->varstack[$name])) { - foreach ($this->varstack[$name] as $var => $value) { - $template->assign($var, $value); - } - - unset($this->varstack[$name]); - } - } - - if ($content !== null) { - if ($loopResults->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * Process {elseloop rel="loopname"} ... {/elseloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - */ - public function theliaElseloop($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - //Block the smarty interpretation in the elseloop - if ($content === null) { - if (! $this->checkEmptyLoop($params)) { - $repeat = false; - - return ''; - } - } - - return $content; - } - - /** - * Process {ifloop rel="loopname"} ... {/ifloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - */ - public function theliaIfLoop($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - // When encountering close tag, check if loop has results. - if ($repeat === false) { - return $this->checkEmptyLoop($params) ? '' : $content; - } - - return ''; - } - - /** - * Process {pageloop rel="loopname"} ... {/pageloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - * @throws \InvalidArgumentException - */ - public function theliaPageLoop($params, $content, $template, &$repeat) - { - $loopName = $this->getParam($params, 'rel'); - - if (null == $loopName) { - throw new \InvalidArgumentException($this->translator->trans("Missing 'rel' parameter in page loop")); - } - - // Find pagination - $pagination = self::getPagination($loopName); - - if ($pagination === null || $pagination->getNbResults() == 0) { - // No need to paginate - return ''; - } - - $startPage = intval($this->getParam($params, 'start-page', 1)); - $displayedPageCount = intval($this->getParam($params, 'limit', 10)); - - if (intval($displayedPageCount) == 0) { - $displayedPageCount = PHP_INT_MAX; - } - - $totalPageCount = $pagination->getLastPage(); - - if ($content === null) { - // The current page - $currentPage = $pagination->getPage(); - - // Get the start page. - if ($totalPageCount > $displayedPageCount) { - $startPage = $currentPage - round($displayedPageCount / 2); - - if ($startPage <= 0) { - $startPage = 1; - } - } - - // This is the iterative page number, the one we're going to increment in this loop - $iterationPage = $startPage; - - // The last displayed page number - $endPage = $startPage + $displayedPageCount - 1; - - if ($endPage > $totalPageCount) { - $endPage = $totalPageCount; - } - - // The first displayed page number - $template->assign('START', $startPage); - // The previous page number - $template->assign('PREV', $currentPage > 1 ? $currentPage-1 : $currentPage); - // The next page number - $template->assign('NEXT', $currentPage < $totalPageCount ? $currentPage+1 : $totalPageCount); - // The last displayed page number - $template->assign('END', $endPage); - // The overall last page - $template->assign('LAST', $totalPageCount); - } else { - $iterationPage = $template->getTemplateVars('PAGE'); - - $iterationPage++; - } - - if ($iterationPage <= $template->getTemplateVars('END')) { - // The iterative page number - $template->assign('PAGE', $iterationPage); - - // The overall current page number - $template->assign('CURRENT', $pagination->getPage()); - - $repeat = true; - } - - if ($content !== null) { - return $content; - } - - return ''; - } - - /** - * Check if a loop has returned results. The loop shoud have been executed before, or an - * InvalidArgumentException is thrown - * - * @param array $params - * - * @return boolean true if the loop is empty - * @throws \InvalidArgumentException - */ - protected function checkEmptyLoop($params) - { - $loopName = $this->getParam($params, 'rel'); - - if (null == $loopName) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in ifloop/elseloop arguments") - ); - } - - if (! isset($this->loopstack[$loopName])) { - throw new \InvalidArgumentException( - $this->translator->trans("Related loop name '%name'' is not defined.", ['%name' => $loopName]) - ); - } - - return $this->loopstack[$loopName]->isEmpty(); - } - - /** - * @param $smartyParams - * - * @return BaseLoop - * @throws \Thelia\Core\Template\Element\Exception\InvalidElementException - * @throws \Thelia\Core\Template\Element\Exception\ElementNotFoundException - */ - protected function createLoopInstance($smartyParams) - { - $type = strtolower($smartyParams['type']); - - if (! isset($this->loopDefinition[$type])) { - throw new ElementNotFoundException( - $this->translator->trans("Loop type '%type' is not defined.", ['%type' => $type]) - ); - } - - $class = new \ReflectionClass($this->loopDefinition[$type]); - - if ($class->isSubclassOf("Thelia\Core\Template\Element\BaseLoop") === false) { - throw new InvalidElementException( - $this->translator->trans("'%type' loop class should extends Thelia\Core\Template\Element\BaseLoop", ['%type' => $type]) - ); - } - - $loop = $class->newInstance( - $this->container - ); - - $loop->initializeArgs($smartyParams); - - return $loop; - } - - /** - * - * Injects an associative array containing information for loop execution - * - * key is loop name - * value is the class implementing/extending base loop classes - * - * ex : - * - * $loop = array( - * "product" => "Thelia\Loop\Product", - * "category" => "Thelia\Loop\Category", - * "myLoop" => "My\Own\Loop" - * ); - * - * @param array $loopDefinition - * @throws \InvalidArgumentException if loop name already exists - */ - public function setLoopList(array $loopDefinition) - { - foreach ($loopDefinition as $name => $className) { - if (array_key_exists($name, $this->loopDefinition)) { - throw new \InvalidArgumentException( - $this->translator->trans("The loop name '%name' is already defined in %className class", [ - '%name' => $name, - '%className' => $className - ]) - ); - } - - $this->loopDefinition[$name] = $className; - } - } - - /** - * Defines the various smarty plugins hendled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - - new SmartyPluginDescriptor('function', 'count', $this, 'theliaCount'), - new SmartyPluginDescriptor('block', 'loop', $this, 'theliaLoop'), - new SmartyPluginDescriptor('block', 'elseloop', $this, 'theliaElseloop'), - new SmartyPluginDescriptor('block', 'ifloop', $this, 'theliaIfLoop'), - new SmartyPluginDescriptor('block', 'pageloop', $this, 'theliaPageLoop'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Translation.php b/local/local/modules/TheliaSmarty/Template/Plugins/Translation.php deleted file mode 100644 index 6eb83652..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Translation.php +++ /dev/null @@ -1,125 +0,0 @@ -translator = $translator; - } - - /** - * Set the default translation domain - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function setDefaultTranslationDomain($params, &$smarty) - { - $this->defaultTranslationDomain = $this->getParam($params, 'domain'); - } - - /** - * Set the default locale - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function setDefaultLocale($params, &$smarty) - { - $this->defaultLocale = $this->getParam($params, 'locale'); - } - - /** - * Process translate function - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function translate($params, &$smarty) - { - // All parameters other than 'l' and 'd' and 'js' are supposed to be variables. Build an array of var => value pairs - // and pass it to the translator - $vars = array(); - - foreach ($params as $name => $value) { - if (!in_array($name, $this->protectedParams)) { - $vars["%$name"] = $value; - } - } - - $str = $this->translator->trans( - $this->getParam($params, 'l'), - $vars, - $this->getParam($params, 'd', $this->defaultTranslationDomain), - $this->getParam($params, 'locale', $this->defaultLocale), - $this->getBoolean($this->getParam($params, 'default', true), true), - $this->getBoolean($this->getParam($params, 'fallback', true), true) - ); - - if ($this->getParam($params, 'js', 0)) { - $str = preg_replace("/(['\"])/", "\\\\$1", $str); - } - - return $str; - } - - protected function getBoolean($value, $default = false) - { - $val = filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); - if (null === $val) { - $val = $default; - } - - return $val; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'intl', $this, 'translate'), - new SmartyPluginDescriptor('function', 'default_translation_domain', $this, 'setDefaultTranslationDomain'), - new SmartyPluginDescriptor('function', 'default_locale', $this, 'setDefaultLocale'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/Type.php b/local/local/modules/TheliaSmarty/Template/Plugins/Type.php deleted file mode 100644 index 9140a13d..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/Type.php +++ /dev/null @@ -1,47 +0,0 @@ -isValid($value)) { - return ''; - } - - return $value; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('modifier', 'assertType', $this, 'assertTypeModifier'), - ); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php b/local/local/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php deleted file mode 100644 index 988a7202..00000000 --- a/local/local/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php +++ /dev/null @@ -1,395 +0,0 @@ -requestStack = $requestStack; - $this->tokenProvider = $tokenProvider; - $this->container = $container; - } - - /** - * Process url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateUrlFunction($params, &$smarty) - { - // the path to process - $current = $this->getParam($params, 'current', false); - $path = $this->getParam($params, 'path', null); - // Do not invoke index.php in URL (get a static file in web space - $file = $this->getParam($params, 'file', null); - $routeId = $this->getParam($params, 'route_id', null); - // select default router - if ($this->getRequest()->fromAdmin()) { - $defaultRouter = 'admin'; - } elseif ($this->getRequest()->fromFront()) { - $defaultRouter = 'front'; - } else { - $defaultRouter = null; - } - $routerId = $this->getParam($params, 'router', $defaultRouter); - - if ($current) { - $path = $this->getRequest()->getPathInfo(); - unset($params["current"]); // Delete the current param, so it isn't included in the url - - // build the query variables - $params = array_merge( - $this->getRequest()->query->all(), - $params - ); - } - - if ($routeId !== null && $routerId !== null) { - $routerId = 'router.' . $routerId; - - // test if the router exists - if (!$this->container->has($routerId)) { - throw new \InvalidArgumentException( - 'The router "' . $routerId . '" not found.' - ); - } - // get url by router and id - /** @var Router $router */ - $router = $this->container->get($routerId); - - $url = $router->generate( - $routeId, - $this->getArgsFromParam($params, ['route_id', 'router']), - Router::ABSOLUTE_URL - ); - } else { - if ($file !== null) { - $path = $file; - $mode = URL::PATH_TO_FILE; - } elseif ($path !== null) { - $mode = URL::WITH_INDEX_PAGE; - } else { - throw new \InvalidArgumentException( - "Please specify either 'path', 'file' or router and route_id on parameters in {url} function." - ); - } - - $excludeParams = $this->resolvePath($params, $path, $smarty); - - $url = URL::getInstance()->absoluteUrl( - $path, - $this->getArgsFromParam($params, array_merge(['noamp', 'path', 'file', 'target'], $excludeParams)), - $mode - ); - - $request = $this->getRequest(); - $requestedLangCodeOrLocale = $params["lang"]; - $view = $request->attributes->get('_view', null); - $viewId = $view === null ? null : $request->query->get($view . '_id', null); - - if (null !== $requestedLangCodeOrLocale) { - if (strlen($requestedLangCodeOrLocale) > 2) { - $lang = LangQuery::create()->findOneByLocale($requestedLangCodeOrLocale); - } else { - $lang = LangQuery::create()->findOneByCode($requestedLangCodeOrLocale); - } - - if (ConfigQuery::isMultiDomainActivated()) { - $urlRewrite = RewritingUrlQuery::create() - ->filterByView($view) - ->filterByViewId($viewId) - ->filterByViewLocale($lang->getLocale()) - ->findOneByRedirected(null) - ; - - $path = ''; - if (null != $urlRewrite) { - $path = "/".$urlRewrite->getUrl(); - } - $url = rtrim($lang->getUrl(), "/").$request->getBaseUrl().$path; - } - - } - } - return $this->applyNoAmpAndTarget($params, $url); - } - - /** - * - * find placeholders in the path and replace them by the given value - * - * @param $params - * @param $path - * @param $smarty - * @return array the placeholders found - */ - protected function resolvePath(&$params, &$path, $smarty) - { - $placeholder = []; - - foreach ($params as $key => $value) { - if (false !== strpos($path, "%$key")) { - $placeholder["%$key"] = SmartyParser::theliaEscape($value, $smarty); - unset($params[$key]); - } - } - - $path = strtr($path, $placeholder); - $keys = array_keys($placeholder); - array_walk($keys, function(&$item, $key) { - $item = str_replace('%', '', $item); - }); - - return $keys; - } - - /** - * Process view url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateFrontViewUrlFunction($params, &$smarty) - { - return $this->generateViewUrlFunction($params, false); - } - - /** - * Process administration view url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateAdminViewUrlFunction($params, &$smarty) - { - return $this->generateViewUrlFunction($params, true); - } - - - public function navigateToUrlFunction($params, &$smarty) - { - $to = $this->getParam($params, 'to', null); - - $toMethod = $this->getNavigateToMethod($to); - - $url = URL::getInstance()->absoluteUrl( - $this->$toMethod(), - $this->getArgsFromParam($params, ['noamp', 'to', 'target']), - URL::WITH_INDEX_PAGE - ); - - return $this->applyNoAmpAndTarget($params, $url); - } - - protected function generateViewUrlFunction($params, $forAdmin) - { - // the view name (without .html) - $view = $this->getParam($params, 'view'); - - $args = $this->getArgsFromParam($params, array('view', 'noamp', 'target')); - - $url = $forAdmin ? URL::getInstance()->adminViewUrl($view, $args) : URL::getInstance()->viewUrl($view, $args); - - return $this->applyNoAmpAndTarget($params, $url); - } - - /** - * Get URL parameters array from parameters. - * - * @param array $params Smarty function params - * @param array $exclude Smarty function exclude params - * @return array the parameters array (either emply, of valued) - */ - private function getArgsFromParam($params, $exclude = array()) - { - $pairs = array(); - - foreach ($params as $name => $value) { - if (in_array($name, $exclude)) { - continue; - } - - $pairs[$name] = $value; - } - - return $pairs; - } - - public function generateUrlWithToken($params, &$smarty) - { - /** - * Compute the url - */ - $url = $this->generateUrlFunction($params, $smarty); - - $urlTokenParam = $this->getParam($params, "url_param", "_token"); - - /** - * Add the token - */ - $token = $this->tokenProvider->assignToken(); - - $newUrl = URL::getInstance()->absoluteUrl( - $url, - [ - $urlTokenParam => $token - ] - ); - - return $this->applyNoAmpAndTarget($params, $newUrl); - } - - protected function applyNoAmpAndTarget($params, $url) - { - $noamp = $this->getParam($params, 'noamp', null); // Do not change & in & - $target = $this->getParam($params, 'target', null); - - if (!$noamp) { - $url = str_replace('&', '&', $url); - } - - if ($target != null) { - $url .= '#'.$target; - } - - return $url; - } - - /** - * Set the _previous_url request attribute, to define the previous URL, or - * prevent saving the current URL as the previous one. - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - */ - public function setPreviousUrlFunction($params, &$smarty) - { - $ignore_current = $this->getParam($params, 'ignore_current', false); - - if ($ignore_current !== false) { - $this->getRequest()->attributes->set('_previous_url', 'dont-save'); - } else { - $this->getRequest()->attributes->set('_previous_url', $this->generateUrlFunction($params, $smarty)); - } - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'url', $this, 'generateUrlFunction'), - new SmartyPluginDescriptor('function', 'token_url', $this, 'generateUrlWithToken'), - new SmartyPluginDescriptor('function', 'viewurl', $this, 'generateFrontViewUrlFunction'), - new SmartyPluginDescriptor('function', 'admin_viewurl', $this, 'generateAdminViewUrlFunction'), - new SmartyPluginDescriptor('function', 'navigate', $this, 'navigateToUrlFunction'), - new SmartyPluginDescriptor('function', 'set_previous_url', $this, 'setPreviousUrlFunction') - ); - } - - /** - * @return array sur le format "to_value" => "method_name" - */ - protected function getNavigateToValues() - { - return array( - "current" => "getCurrentUrl", - "previous" => "getPreviousUrl", - "index" => "getIndexUrl", - ); - } - - protected function getNavigateToMethod($to) - { - if ($to === null) { - throw new \InvalidArgumentException("Missing 'to' parameter in `navigate` substitution."); - } - - $navigateToValues = $this->getNavigateToValues(); - - if (!array_key_exists($to, $navigateToValues)) { - throw new \InvalidArgumentException( - sprintf("Incorrect value `%s` for parameter `to` in `navigate` substitution.", $to) - ); - } - - return $navigateToValues[$to]; - } - - protected function getCurrentUrl() - { - return $this->getRequest()->getUri(); - } - - protected function getPreviousUrl() - { - return URL::getInstance()->absoluteUrl($this->getSession()->getReturnToUrl()); - } - - protected function getIndexUrl() - { - return URL::getInstance()->getIndexPage(); - } - - /** - * @return Request - */ - protected function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->getRequest()->getSession(); - } -} diff --git a/local/local/modules/TheliaSmarty/Template/SmartyHelper.php b/local/local/modules/TheliaSmarty/Template/SmartyHelper.php deleted file mode 100644 index 2bed38f8..00000000 --- a/local/local/modules/TheliaSmarty/Template/SmartyHelper.php +++ /dev/null @@ -1,178 +0,0 @@ - - */ -class SmartyHelper implements ParserHelperInterface -{ - /** - * Parse a string and get all smarty function and block with theirs arguments. - * some smarty functions are not supported : if, for, ... - * - * - * - * @param string $content the template content - * @param array $functions the only functions we want to parse - * - * @return array array of functions with 2 index name and attributes an array of name, value - */ - public function getFunctionsDefinition($content, array $functions = array()) - { - $strlen = strlen($content); - - // init - $buffer = ''; - $name = ''; - $attributeName = ''; - $waitfor = ''; - - $inFunction = false; - $hasName = false; - $inAttribute = false; - $inInnerFunction = false; - - $ldelim = '{'; - $rdelim = '}'; - $skipFunctions = array("if", "for"); - $skipCharacters = array("\t", "\r", "\n"); - - $store = array(); - $attributes = array(); - - for ($pos = 0; $pos < $strlen; $pos++) { - $char = $content[$pos]; - - if (in_array($char, $skipCharacters)) { - continue; - } - - if (!$inFunction) { - if ($char === $ldelim) { - $inFunction = true; - $inInnerFunction = false; - } - continue; - } - - // get function name - if (!$hasName) { - if ($char === " " || $char === $rdelim) { - $name = $buffer; - // we catch this name ? - $hasName = $inFunction = (!in_array($name, $skipFunctions) && (0 === count($functions) || in_array($name, $functions))); - $buffer = ""; - continue; - } else { - // skip { - if (in_array($char, array("/", "$", "#", "'", "\""))) { - $inFunction = false; - } else { - $buffer .= $char; - } - continue; - } - } - - // inner Function ? - if ($char === $ldelim) { - $inInnerFunction = true; - $buffer .= $char; - continue; - } - - // end ? - if ($char === $rdelim) { - if ($inInnerFunction) { - $inInnerFunction = false; - $buffer .= $char; - } else { - if ($inAttribute) { - if ("" === $attributeName) { - $attributes[trim($buffer)] = ""; - } else { - $attributes[$attributeName] = $buffer; - } - $inAttribute = false; - } - $store[] = array( - "name" => $name, - "attributes" => $attributes - ); - $inFunction = false; - $inAttribute = false; - $inInnerFunction = false; - $hasName = false; - $name = ""; - $buffer = ""; - $waitfor = ""; - $attributes = array(); - } - continue; - } - - // attributes - if (!$inAttribute) { - if ($char !== " ") { - $inAttribute = true; - $buffer = $char; - $attributeName = ""; - } - } else { - if ("" === $attributeName) { - if (in_array($char, array(" ", "="))) { - $attributeName = trim($buffer); - if (" " === $char) { - $attributes[$attributeName] = ""; - $inAttribute = false; - } - $buffer = ""; - } else { - $buffer .= $char; - } - } else { - if ("" === $waitfor) { - if (in_array($char, array("'", "\""))) { - $waitfor = $char; - } else { - $waitfor = " "; - $buffer .= $char; - } - continue; - } - if ($inInnerFunction) { - $buffer .= $char; - } else { - // end of attribute ? - if ($char === $waitfor) { - $attributes[$attributeName] = $buffer; - $inAttribute = false; - $waitfor = ""; - } else { - $buffer .= $char; - } - } - } - } - } - - return $store; - } -} diff --git a/local/local/modules/TheliaSmarty/Template/SmartyParser.php b/local/local/modules/TheliaSmarty/Template/SmartyParser.php deleted file mode 100644 index 679dbbff..00000000 --- a/local/local/modules/TheliaSmarty/Template/SmartyParser.php +++ /dev/null @@ -1,514 +0,0 @@ - - * @author Etienne Roudeix - */ -class SmartyParser extends Smarty implements ParserInterface -{ - public $plugins = array(); - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** @var ParserContext */ - protected $parserContext; - - /** @var TemplateHelperInterface */ - protected $templateHelper; - - /** @var RequestStack */ - protected $requestStack; - - protected $backOfficeTemplateDirectories = array(); - protected $frontOfficeTemplateDirectories = array(); - - protected $templateDirectories = array(); - - /** @var TemplateDefinition */ - protected $templateDefinition; - - /** @var int */ - protected $status = 200; - - /** @var string */ - protected $env; - - /** @var bool */ - protected $debug; - - /** - * @param RequestStack $requestStack - * @param EventDispatcherInterface $dispatcher - * @param ParserContext $parserContext - * @param TemplateHelperInterface $templateHelper - * @param string $env - * @param bool $debug - */ - public function __construct( - RequestStack $requestStack, - EventDispatcherInterface $dispatcher, - ParserContext $parserContext, - TemplateHelperInterface $templateHelper, - $env = "prod", - $debug = false - ) { - parent::__construct(); - - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - $this->parserContext = $parserContext; - $this->templateHelper = $templateHelper; - $this->env = $env; - $this->debug = $debug; - - // Configure basic Smarty parameters - - $compile_dir = THELIA_ROOT . 'cache'. DS . $env . DS . 'smarty' . DS . 'compile'; - if (! is_dir($compile_dir)) { - @mkdir($compile_dir, 0777, true); - } - - $cache_dir = THELIA_ROOT . 'cache'. DS . $env . DS . 'smarty' . DS . 'cache'; - if (! is_dir($cache_dir)) { - @mkdir($cache_dir, 0777, true); - } - - $this->setCompileDir($compile_dir); - $this->setCacheDir($cache_dir); - $this->inheritance_merge_compiled_includes = false; - - // Prevent smarty ErrorException: Notice: Undefined index bla bla bla... - $this->error_reporting = E_ALL ^ E_NOTICE; - - // The default HTTP status - $this->status = 200; - - $this->registerFilter('output', array($this, "trimWhitespaces")); - $this->registerFilter('variable', array(__CLASS__, "theliaEscape")); - } - - /** - * Return the current request or null if no request exists - * - * @return Request|null - */ - public function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * Trim whitespaces from the HTML output, preserving required ones in pre, textarea, javascript. - * This methois uses 3 levels of trimming : - * - * - 0 : whitespaces are not trimmed, code remains as is. - * - 1 : only blank lines are trimmed, code remains indented and human-readable (the default) - * - 2 or more : all unnecessary whitespace are removed. Code is very hard to read. - * - * The trim level is defined by the configuration variable html_output_trim_level - * - * @param string $source the HTML source - * @param \Smarty_Internal_Template $template - * @return string - */ - public function trimWhitespaces($source, /** @noinspection PhpUnusedParameterInspection */ \Smarty_Internal_Template $template) - { - $compressionMode = ConfigQuery::read('html_output_trim_level', 1); - - if ($compressionMode == 0) { - return $source; - } - - $store = array(); - $_store = 0; - $_offset = 0; - - // Unify Line-Breaks to \n - $source = preg_replace("/\015\012|\015|\012/", "\n", $source); - - // capture Internet Explorer Conditional Comments - if ($compressionMode == 1) { - $expressions = array( - // remove spaces between attributes (but not in attribute values!) - '#(([a-z0-9]\s*=\s*(["\'])[^\3]*?\3)|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \4', - '/(^[\n]*|[\n]+)[\s\t]*[\n]+/' => "\n" - ); - } elseif ($compressionMode >= 2) { - if (preg_match_all('##is', $source, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) { - foreach ($matches as $match) { - $store[] = $match[0][0]; - $_length = strlen($match[0][0]); - $replace = '@!@SMARTY:' . $_store . ':SMARTY@!@'; - $source = substr_replace($source, $replace, $match[0][1] - $_offset, $_length); - - $_offset += $_length - strlen($replace); - $_store++; - } - } - - // Strip all HTML-Comments - // yes, even the ones in - - - - - - \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess deleted file mode 100644 index 14249c50..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php deleted file mode 100644 index ef7eef7e..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php +++ /dev/null @@ -1,349 +0,0 @@ -exists($webMediaEnvPath)) { - $fileSystem->mkdir($webMediaEnvPath.DS.'upload'); - $fileSystem->mkdir($webMediaEnvPath.DS.'thumbs'); - } - } else { - if (false === $fileSystem->exists($webMediaPath)) { - $fileSystem->mkdir($webMediaPath.DS.'upload'); - $fileSystem->mkdir($webMediaPath.DS.'thumbs'); - } - } -} - -$env = getenv('THELIA_ENV') ?: 'prod'; - -if (file_exists(__DIR__.'/../../../../../../../../core/vendor/autoload.php')) { - // Symlinked with std install - require_once __DIR__.'/../../../../../../../../core/vendor/autoload.php'; -} elseif (file_exists(__DIR__.'/../../../../core/vendor/autoload.php')) { - // Hard copy with std install - require_once __DIR__.'/../../../../core/vendor/autoload.php'; -} elseif (file_exists(__DIR__.'/../../../../../../../../bootstrap.php')) { - // Symlinked with thelia-project - require_once __DIR__.'/../../../../../../../../bootstrap.php'; -} elseif (file_exists(__DIR__.'/../../../../bootstrap.php')) { - // Hard copy with thelia-project - require_once __DIR__.'/../../../../bootstrap.php'; -} - -/** @var Request $request */ -$request = Request::createFromGlobals(); - -$thelia = new Thelia($env, false); - -$thelia->boot(); - -/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */ -$container = $thelia->getContainer(); - -$eventDispatcher = $container->get('event_dispatcher'); -$container->get('thelia.translator'); -$container->get('thelia.url.manager'); -$container->set('request', $request); -$container->get('request_stack')->push($request); -$event = new \Thelia\Core\Event\SessionEvent(THELIA_CACHE_DIR.$env, false, $env); - -$eventDispatcher->dispatch(\Thelia\Core\TheliaKernelEvents::SESSION, $event); -$session = $event->getSession(); -$session->start(); -$request->setSession($session); - -/** @var \Thelia\Core\Security\SecurityContext $securityContext */ -$securityContext = $container->get('thelia.securityContext'); - -// We just check the current user has the ADMIN role. -$isGranted = $securityContext->isGranted(['ADMIN'], [], [], []); - -if (false === $isGranted) { - echo "Sorry, it seems that you're not allowed to use this function. ADMIN role is required."; - - exit; -} - -//------------------------------------------------------------------------------ -// DO NOT COPY THESE VARIABLES IN FOLDERS config.php FILES -//------------------------------------------------------------------------------ - -//********************** -//Path configuration -//********************** - -// In this configuration the media folder is located in the /web directory. - -// base url of site (without final /). if you prefer relative urls leave empty. -$base_url = rtrim(ConfigQuery::getConfiguredShopUrl(), '/'); - -// Argh, url_site is not defined ?! -if (empty($base_url)) { - // A we did not used the router to access this dialog, we cannot use the URL class. Use the good old method. - $base_url = $request->getSchemeAndHttpHost().preg_replace('!/tinymce/filemanager/dialog.php.*$!', '', $_SERVER['REQUEST_URI']); -} - -//Check for backward compatibility -if ($env !== "prod") { - // path from base_url to base of upload folder for current env (with start and final /) - $upload_dir = '/media/'.$env.'/upload/'; - - // path from base_url to base of upload folder for current env (with start and final /) - $thumbs_dir = '/media/'.$env.'/thumbs/'; - - // path to file manager folder to upload folder for current env (with final /) - $current_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'upload'.DS; - - // path to file manager folder to thumbs folder for current env (with final /) - // WARNING: thumbs folder should not be inside the upload folder - $thumbs_base_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'thumbs'.DS; -} else { - // path from base_url to base of upload folder (with start and final /) - $upload_dir = '/media/upload/'; - - // path from base_url to base of upload folder (with start and final /) - $thumbs_dir = '/media/thumbs/'; - - // path to file manager folder to upload folder (with final /) - $current_path = THELIA_WEB_DIR.'media'.DS.'upload'.DS; - - // path to file manager folder to thumbs folder (with final /) - // WARNING: thumbs folder should not be inside the upload folder - $thumbs_base_path = THELIA_WEB_DIR.'media'.DS.'thumbs'.DS; -} - -generateFolder($env); - -// path from base_url to filemanager folder (with start and final /) -$filemanager_dir = '/tinymce/filemanager/'; - -// Set the language to the back-office current language, if it is available -$current_locale = $request->getSession()->getLang()->getLocale(); - -if (file_exists(__DIR__.DS.'..'.DS.'lang.'.DS.$current_locale.'.php')) { - $default_language = $current_locale; -} else { - $default_language = 'en_EN'; -} - -// OPTIONAL SECURITY -// if set to true only those will access RF whose url contains the access key(akey) like: -// -// in tinymce a new parameter added: filemanager_access_key:"myPrivateKey" -// example tinymce config: -// tiny init ... -// -// external_filemanager_path:"../filemanager/", -// filemanager_title:"Filemanager" , -// filemanager_access_key:"myPrivateKey" , -// ... -define('USE_ACCESS_KEYS', false); // TRUE or FALSE - -// add access keys eg: array('myPrivateKey', 'someoneElseKey'); -// keys should only containt (a-z A-Z 0-9 \ . _ -) characters -// if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this: -// $username = 'Admin'; -// $salt = 'dsflFWR9u2xQa' (a hard coded string) -// $akey = md5($username.$salt); -// DO NOT use 'key' as access key! -// Keys are CASE SENSITIVE! -$access_keys = array('myPrivateKey', 'someoneElseKey'); - -//-------------------------------------------------------------------------------------------------------- -// YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS -//-------------------------------------------------------------------------------------------------------- - -$MaxSizeUpload = 100; //Mb - -// SERVER OVERRIDE -if ((int) (ini_get('post_max_size')) < $MaxSizeUpload) { - $MaxSizeUpload = (int) (ini_get('post_max_size')); -} - -// $default_language = "en_EN"; //default language file name -$icon_theme = "ico"; //ico or ico_dark you can cusatomize just putting a folder inside filemanager/img -$show_folder_size = true; //Show or not show folder size in list view feature in filemanager (is possible, if there is a large folder, to greatly increase the calculations) -$show_sorting_bar = true; //Show or not show sorting feature in filemanager -$loading_bar = true; //Show or not show loading bar -$transliteration = false; //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters) - -//******************************************* -//Images limit and resizing configuration -//******************************************* - -// set maximum pixel width and/or maximum pixel height for all images -// If you set a maximum width or height, oversized images are converted to those limits. Images smaller than the limit(s) are unaffected -// if you don't need a limit set both to 0 -$image_max_width = 0; -$image_max_height = 0; - -//Automatic resizing // -// If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension -// If you set width or height to 0 the script automatically calculates the other dimension -// Is possible that if you upload very big images the script not work to overcome this increase the php configuration of memory and time limit -$image_resizing = false; -$image_resizing_width = 0; -$image_resizing_height = 0; - -//****************** -// Default layout setting -// -// 0 => boxes -// 1 => detailed list (1 column) -// 2 => columns list (multiple columns depending on the width of the page) -// YOU CAN ALSO PASS THIS PARAMETERS USING SESSION VAR => $_SESSION['RF']["VIEW"]= -// -//****************** -$default_view = 0; - -//set if the filename is truncated when overflow first row -$ellipsis_title_after_first_row = true; - -//************************* -//Permissions configuration -//****************** -$delete_files = true; -$create_folders = true; -$delete_folders = true; -$upload_files = true; -$rename_files = true; -$rename_folders = true; -$duplicate_files = true; -$copy_cut_files = true; // for copy/cut files -$copy_cut_dirs = true; // for copy/cut directories - - -// defines size limit for paste in MB / operation -// set 'FALSE' for no limit -$copy_cut_max_size = 100; -// defines file count limit for paste / operation -// set 'FALSE' for no limit -$copy_cut_max_count = 200; -//IF any of these limits reached, operation won't start and generate warning - -//********************** -//Allowed extensions (lowercase insert) -//********************** -$ext_img = array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg'); //Images -$ext_file = array( - 'doc', - 'docx', - 'rtf', - 'pdf', - 'xls', - 'xlsx', - 'txt', - 'csv', - 'html', - 'xhtml', - 'psd', - 'sql', - 'log', - 'fla', - 'xml', - 'ade', - 'adp', - 'mdb', - 'accdb', - 'ppt', - 'pptx', - 'odt', - 'ots', - 'ott', - 'odb', - 'odg', - 'otp', - 'otg', - 'odf', - 'ods', - 'odp', - 'css', - 'ai', -); //Files -$ext_video = array('mov', 'mpeg', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm"); //Video -$ext_music = array('mp3', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav'); //Audio -$ext_misc = array('zip', 'rar', 'gz', 'tar', 'iso', 'dmg'); //Archives - -$ext = array_merge($ext_img, $ext_file, $ext_misc, $ext_video, $ext_music); //allowed extensions - -/****************** - * AVIARY config - *******************/ -$aviary_active = false; -$aviary_key = "dvh8qudbp6yx2bnp"; -$aviary_secret = "m6xaym5q42rpw433"; -$aviary_version = 3; -$aviary_language = 'en'; - -//The filter and sorter are managed through both javascript and php scripts because if you have a lot of -//file in a folder the javascript script can't sort all or filter all, so the filemanager switch to php script. -//The plugin automatic swich javascript to php when the current folder exceeds the below limit of files number -$file_number_limit_js = 500; - -//********************** -// Hidden files and folders -//********************** -// set the names of any folders you want hidden (eg "hidden_folder1", "hidden_folder2" ) Remember all folders with these names will be hidden (you can set any exceptions in config.php files on folders) -$hidden_folders = array(); -// set the names of any files you want hidden. Remember these names will be hidden in all folders (eg "this_document.pdf", "that_image.jpg" ) -$hidden_files = array('config.php'); - -/******************* - * JAVA upload - *******************/ -$java_upload = true; -$JAVAMaxSizeUpload = 200; //Gb - - -//************************************ -//Thumbnail for external use creation -//************************************ - - -// New image resized creation with fixed path from filemanager folder after uploading (thumbnails in fixed mode) -// If you want create images resized out of upload folder for use with external script you can choose this method, -// You can create also more than one image at a time just simply add a value in the array -// Remember than the image creation respect the folder hierarchy so if you are inside source/test/test1/ the new image will create at -// path_from_filemanager/test/test1/ -// PS if there isn't write permission in your destination folder you must set it -$fixed_image_creation = false; //activate or not the creation of one or more image resized with fixed path from filemanager folder -$fixed_path_from_filemanager = array( - '../test/', - '../test1/', -); //fixed path of the image folder from the current position on upload folder -$fixed_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename -$fixed_image_creation_to_append = array('_test', ''); //name to appendon filename -$fixed_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height) -$fixed_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width) - - -// New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode) -// With Responsive filemanager you can create automatically resized image inside the upload folder, also more than one at a time -// just simply add a value in the array -// The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here -$relative_image_creation = false; //activate or not the creation of one or more image resized with relative path from upload folder -$relative_path_from_current_pos = array( - 'thumb/', - 'thumb/', -); //relative path of the image folder from the current position on upload folder -$relative_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename -$relative_image_creation_name_to_append = array('_test', ''); //name to append on filename -$relative_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height) -$relative_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width) -; diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css deleted file mode 100644 index 70414368..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! -* bootstrap-lightbox.css v0.6.0 -* Copyright 2013 Jason Butz -* http://www.apache.org/licenses/LICENSE-2.0.txt -*/ -.lightbox{position:relative;top:70px;z-index:1050;line-height:0;text-align:center;background-color:transparent;outline:0}.lightbox .hide{display:none}.lightbox .in{display:block}.lightbox-content{display:inline-block;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.lightbox-content .lightbox-caption{position:absolute;right:12px;bottom:11px;left:11px;padding:2%;font-size:14px;line-height:18px;color:white;text-align:center;text-shadow:0 -1px 0 #000;text-shadow:0 -1px 0 rgba(0,0,0,0.3);background:#000;background:rgba(0,0,0,0.6)}.lightbox-header .close{margin-top:-16px;margin-right:-16px;font-size:2em;color:white;opacity:.8;filter:alpha(opacity=80)}.lightbox-header .close :hover{opacity:.4;filter:alpha(opacity=40)} diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css deleted file mode 100644 index 373c1b6b..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * Bootstrap Modal - * - * Copyright Jordan Schroter - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - */.modal-open{overflow:hidden}.modal-open.page-overflow .page-container,.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom,.modal-open.page-overflow .modal-scrollable{overflow-y:scroll}@media (max-width:840px){.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom{overflow-y:visible}}.modal-scrollable{position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.modal{outline:0;position:absolute;margin-top:0;top:50%;overflow:visible}.modal.fade{top:-100%;-webkit-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out}.modal.fade.in{top:50%}.modal-body{max-height:none;overflow:visible}.modal.modal-absolute{position:absolute;z-index:950}.modal .loading-mask{position:absolute;top:0;bottom:0;left:0;right:0;background:#fff;border-radius:6px}.modal-backdrop.modal-absolute{position:absolute;z-index:940}.modal-backdrop,.modal-backdrop.fade.in{opacity:.85;filter:alpha(opacity=85);background:#eee}.modal.container{width:940px;margin-left:-470px}.modal-overflow.modal{top:1%}.modal-overflow.modal.fade{top:-100%}.modal-overflow.modal.fade.in{top:1%}.modal-overflow .modal-body{overflow:auto;-webkit-overflow-scrolling:touch}@media (min-width:1200px){.modal.container{width:1170px;margin-left:-585px}}@media (max-width:840px){.modal,.modal.container,.modal.modal-overflow{top:1%;right:1%;left:1%;bottom:auto;width:auto!important;height:auto!important;margin:0!important;padding:0!important}.modal.fade.in,.modal.container.fade.in,.modal.modal-overflow.fade.in{top:1%;bottom:auto}.modal-body,.modal-overflow .modal-body{position:static;margin:0;height:auto!important;max-height:none!important;overflow:visible!important}.modal-footer,.modal-overflow .modal-footer{position:static}}.loading-spinner{position:absolute;top:50%;left:50%;margin:-12px 0 0 -12px}.animated{-webkit-animation-duration:1s;-moz-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px)}}@-moz-keyframes shake{0%,100%{-moz-transform:translateX(0)}10%,30%,50%,70%,90%{-moz-transform:translateX(-10px)}20%,40%,60%,80%{-moz-transform:translateX(10px)}}@-o-keyframes shake{0%,100%{-o-transform:translateX(0)}10%,30%,50%,70%,90%{-o-transform:translateX(-10px)}20%,40%,60%,80%{-o-transform:translateX(10px)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}.shake{-webkit-animation-name:shake;-moz-animation-name:shake;-o-animation-name:shake;animation-name:shake} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css deleted file mode 100644 index 0de1c5db..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap Responsive v2.3.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:839px) and (max-width:839px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:839px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:839px) and (max-width:839px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:839px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:839px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:840px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css deleted file mode 100644 index c10c7f41..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap v2.3.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css deleted file mode 100644 index bb839c21..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css +++ /dev/null @@ -1,410 +0,0 @@ -/* The MIT License */ -.dropzone, -.dropzone *, -.dropzone-previews, -.dropzone-previews * { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.dropzone { - position: relative; - border: 1px solid rgba(0,0,0,0.08); - background: rgba(0,0,0,0.02); - padding: 1em; -} -.dropzone.dz-clickable { - cursor: pointer; -} -.dropzone.dz-clickable .dz-message, -.dropzone.dz-clickable .dz-message span { - cursor: pointer; -} -.dropzone.dz-clickable * { - cursor: default; -} -.dropzone .dz-message { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone.dz-drag-hover { - border-color: rgba(0,0,0,0.15); - background: rgba(0,0,0,0.04); -} -.dropzone.dz-started .dz-message { - display: none; -} -.dropzone .dz-preview, -.dropzone-previews .dz-preview { - background: rgba(255,255,255,0.8); - position: relative; - display: inline-block; - margin: 17px; - vertical-align: top; - border: 1px solid #acacac; - padding: 6px 6px 6px 6px; -} -.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail], -.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] { - display: none; -} -.dropzone .dz-preview .dz-details, -.dropzone-previews .dz-preview .dz-details { - width: 100px; - height: 100px; - position: relative; - background: #ebebeb; - padding: 5px; - margin-bottom: 22px; -} -.dropzone .dz-preview .dz-details .dz-filename, -.dropzone-previews .dz-preview .dz-details .dz-filename { - overflow: hidden; - height: 100%; -} -.dropzone .dz-preview .dz-details img, -.dropzone-previews .dz-preview .dz-details img { - position: absolute; - top: 0; - left: 0; - width: 100px; - height: 100px; -} -.dropzone .dz-preview .dz-details .dz-size, -.dropzone-previews .dz-preview .dz-details .dz-size { - position: absolute; - bottom: -28px; - left: 3px; - height: 28px; - line-height: 28px; -} -.dropzone .dz-preview.dz-error .dz-error-mark, -.dropzone-previews .dz-preview.dz-error .dz-error-mark { - display: block; -} -.dropzone .dz-preview.dz-success .dz-success-mark, -.dropzone-previews .dz-preview.dz-success .dz-success-mark { - display: block; -} -.dropzone .dz-preview:hover .dz-details img, -.dropzone-previews .dz-preview:hover .dz-details img { - display: none; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark, -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - display: none; - position: absolute; - width: 40px; - height: 40px; - font-size: 30px; - text-align: center; - right: -10px; - top: -10px; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - color: #8cc657; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - color: #ee162d; -} -.dropzone .dz-preview .dz-progress, -.dropzone-previews .dz-preview .dz-progress { - position: absolute; - top: 100px; - left: 6px; - right: 6px; - height: 6px; - background: #d7d7d7; - display: none; -} -.dropzone .dz-preview .dz-progress .dz-upload, -.dropzone-previews .dz-preview .dz-progress .dz-upload { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 0%; - background-color: #8cc657; -} -.dropzone .dz-preview.dz-processing .dz-progress, -.dropzone-previews .dz-preview.dz-processing .dz-progress { - display: block; -} -.dropzone .dz-preview .dz-error-message, -.dropzone-previews .dz-preview .dz-error-message { - display: none; - position: absolute; - top: -5px; - left: -20px; - background: rgba(245,245,245,0.8); - padding: 8px 10px; - color: #800; - min-width: 140px; - max-width: 500px; - z-index: 500; -} -.dropzone .dz-preview:hover.dz-error .dz-error-message, -.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { - display: block; -} -.dropzone { - border: 1px solid rgba(0,0,0,0.03); - min-height: 360px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: rgba(0,0,0,0.03); - padding: 23px; -} -.dropzone .dz-default.dz-message { - opacity: 1; - -ms-filter: none; - filter: none; - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - -o-transition: opacity 0.3s ease-in-out; - -ms-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - width: 428px; - height: 123px; - margin-left: -214px; - margin-top: -61.5px; - top: 50%; - left: 50%; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-default.dz-message { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-default.dz-message span { - display: none; -} -.dropzone.dz-square .dz-default.dz-message { - background-position: 0 -123px; - width: 268px; - margin-left: -134px; - height: 174px; - margin-top: -87px; -} -.dropzone.dz-drag-hover .dz-message { - opacity: 0.15; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)"; - filter: alpha(opacity=15); -} -.dropzone.dz-started .dz-message { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); -} -.dropzone .dz-preview, -.dropzone-previews .dz-preview { - -webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.16); - box-shadow: 1px 1px 4px rgba(0,0,0,0.16); - font-size: 14px; -} -.dropzone .dz-preview.dz-image-preview:hover .dz-details img, -.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img { - display: block; - opacity: 0.1; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; - filter: alpha(opacity=10); -} -.dropzone .dz-preview.dz-success .dz-success-mark, -.dropzone-previews .dz-preview.dz-success .dz-success-mark { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone .dz-preview.dz-error .dz-error-mark, -.dropzone-previews .dz-preview.dz-error .dz-error-mark { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone .dz-preview.dz-error .dz-progress .dz-upload, -.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload { - background: #ee1e2d; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark, -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.4s ease-in-out; - -moz-transition: opacity 0.4s ease-in-out; - -o-transition: opacity 0.4s ease-in-out; - -ms-transition: opacity 0.4s ease-in-out; - transition: opacity 0.4s ease-in-out; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: no-repeat; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-preview .dz-error-mark, - .dropzone-previews .dz-preview .dz-error-mark, - .dropzone .dz-preview .dz-success-mark, - .dropzone-previews .dz-preview .dz-success-mark { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-preview .dz-error-mark span, -.dropzone-previews .dz-preview .dz-error-mark span, -.dropzone .dz-preview .dz-success-mark span, -.dropzone-previews .dz-preview .dz-success-mark span { - display: none; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - background-position: -268px -123px; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - background-position: -268px -163px; -} -.dropzone .dz-preview .dz-progress .dz-upload, -.dropzone-previews .dz-preview .dz-progress .dz-upload { - -webkit-animation: loading 0.4s linear infinite; - -moz-animation: loading 0.4s linear infinite; - -o-animation: loading 0.4s linear infinite; - -ms-animation: loading 0.4s linear infinite; - animation: loading 0.4s linear infinite; - -webkit-transition: width 0.3s ease-in-out; - -moz-transition: width 0.3s ease-in-out; - -o-transition: width 0.3s ease-in-out; - -ms-transition: width 0.3s ease-in-out; - transition: width 0.3s ease-in-out; - -webkit-border-radius: 2px; - border-radius: 2px; - position: absolute; - top: 0; - left: 0; - width: 0%; - height: 100%; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: repeat-x; - background-position: 0px -400px; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-preview .dz-progress .dz-upload, - .dropzone-previews .dz-preview .dz-progress .dz-upload { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-preview.dz-success .dz-progress, -.dropzone-previews .dz-preview.dz-success .dz-progress { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.4s ease-in-out; - -moz-transition: opacity 0.4s ease-in-out; - -o-transition: opacity 0.4s ease-in-out; - -ms-transition: opacity 0.4s ease-in-out; - transition: opacity 0.4s ease-in-out; -} -.dropzone .dz-preview .dz-error-message, -.dropzone-previews .dz-preview .dz-error-message { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - -o-transition: opacity 0.3s ease-in-out; - -ms-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; -} -.dropzone .dz-preview:hover.dz-error .dz-error-message, -.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone a.dz-remove, -.dropzone-previews a.dz-remove { - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, #eee)); - background-image: -webkit-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -moz-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -o-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -ms-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: linear-gradient(top, #fafafa 0, #eee 100%); - -webkit-border-radius: 2px; - border-radius: 2px; - border: 1px solid #eee; - text-decoration: none; - display: block; - padding: 4px 5px; - text-align: center; - color: #aaa; - margin-top: 26px; -} -.dropzone a.dz-remove:hover, -.dropzone-previews a.dz-remove:hover { - color: #666; -} -@-moz-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-webkit-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-o-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-ms-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css deleted file mode 100644 index f9abb126..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css +++ /dev/null @@ -1 +0,0 @@ -.dropzone,.dropzone *,.dropzone-previews,.dropzone-previews *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dropzone{position:relative;border:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.02);padding:1em}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message span{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone .dz-message{opacity:1;-ms-filter:none;filter:none}.dropzone.dz-drag-hover{border-color:rgba(0,0,0,.15);background:rgba(0,0,0,.04)}.dropzone.dz-started .dz-message{display:none}.dropzone .dz-preview,.dropzone-previews .dz-preview{background:rgba(255,255,255,.8);position:relative;display:inline-block;margin:17px;vertical-align:top;border:1px solid #acacac;padding:6px}.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail],.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail]{display:none}.dropzone .dz-preview .dz-details,.dropzone-previews .dz-preview .dz-details{width:100px;height:100px;position:relative;background:#ebebeb;padding:5px;margin-bottom:22px}.dropzone .dz-preview .dz-details .dz-filename,.dropzone-previews .dz-preview .dz-details .dz-filename{overflow:hidden;height:100%}.dropzone .dz-preview .dz-details img,.dropzone-previews .dz-preview .dz-details img{position:absolute;top:0;left:0;width:100px;height:100px}.dropzone .dz-preview .dz-details .dz-size,.dropzone-previews .dz-preview .dz-details .dz-size{position:absolute;bottom:-28px;left:3px;height:28px;line-height:28px}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{display:block}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{display:block}.dropzone .dz-preview:hover .dz-details img,.dropzone-previews .dz-preview:hover .dz-details img{display:none}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark,.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{display:none;position:absolute;width:40px;height:40px;font-size:30px;text-align:center;right:-10px;top:-10px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{color:#8cc657}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{color:#ee162d}.dropzone .dz-preview .dz-progress,.dropzone-previews .dz-preview .dz-progress{position:absolute;top:100px;left:6px;right:6px;height:6px;background:#d7d7d7;display:none}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{position:absolute;top:0;bottom:0;left:0;width:0;background-color:#8cc657}.dropzone .dz-preview.dz-processing .dz-progress,.dropzone-previews .dz-preview.dz-processing .dz-progress{display:block}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:none;position:absolute;top:-5px;left:-20px;background:rgba(245,245,245,.8);padding:8px 10px;color:#800;min-width:140px;max-width:500px;z-index:500}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{display:block}.dropzone{border:1px solid rgba(0,0,0,.03);min-height:360px;-webkit-border-radius:3px;border-radius:3px;background:rgba(0,0,0,.03);padding:23px}.dropzone .dz-default.dz-message{opacity:1;-ms-filter:none;filter:none;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-image:url(../img/spritemap.png);background-repeat:no-repeat;background-position:0 0;position:absolute;width:428px;height:123px;margin-left:-214px;margin-top:-61.5px;top:50%;left:50%}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-default.dz-message{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-default.dz-message span{display:none}.dropzone.dz-square .dz-default.dz-message{background-position:0 -123px;width:268px;margin-left:-134px;height:174px;margin-top:-87px}.dropzone.dz-drag-hover .dz-message{opacity:.15;-ms-filter:"alpha(Opacity=15)";filter:alpha(opacity=15)}.dropzone.dz-started .dz-message{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0)}.dropzone .dz-preview,.dropzone-previews .dz-preview{-webkit-box-shadow:1px 1px 4px rgba(0,0,0,.16);box-shadow:1px 1px 4px rgba(0,0,0,.16);font-size:14px}.dropzone .dz-preview.dz-image-preview:hover .dz-details img,.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img{display:block;opacity:.1;-ms-filter:"alpha(Opacity=10)";filter:alpha(opacity=10)}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-progress .dz-upload,.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload{background:#ee1e2d}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;background-image:url(../img/spritemap.png);background-repeat:no-repeat}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview .dz-error-mark span,.dropzone-previews .dz-preview .dz-error-mark span,.dropzone .dz-preview .dz-success-mark span,.dropzone-previews .dz-preview .dz-success-mark span{display:none}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{background-position:-268px -123px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-position:-268px -163px}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{-webkit-animation:loading .4s linear infinite;-moz-animation:loading .4s linear infinite;-o-animation:loading .4s linear infinite;-ms-animation:loading .4s linear infinite;animation:loading .4s linear infinite;-webkit-transition:width .3s ease-in-out;-moz-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;-ms-transition:width .3s ease-in-out;transition:width .3s ease-in-out;-webkit-border-radius:2px;border-radius:2px;position:absolute;top:0;left:0;width:0;height:100%;background-image:url(../img/spritemap.png);background-repeat:repeat-x;background-position:0 -400px}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview.dz-success .dz-progress,.dropzone-previews .dz-preview.dz-success .dz-progress{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{opacity:1;-ms-filter:none;filter:none}.dropzone a.dz-remove,.dropzone-previews a.dz-remove{background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fafafa),color-stop(1,#eee));background-image:-webkit-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-moz-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-o-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-ms-linear-gradient(top,#fafafa 0,#eee 100%);background-image:linear-gradient(top,#fafafa 0,#eee 100%);-webkit-border-radius:2px;border-radius:2px;border:1px solid #eee;text-decoration:none;display:block;padding:4px 5px;text-align:center;color:#aaa;margin-top:26px}.dropzone a.dz-remove:hover,.dropzone-previews a.dz-remove:hover{color:#666}@-moz-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-webkit-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-o-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-ms-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css deleted file mode 100644 index 21d6805d..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css +++ /dev/null @@ -1,38 +0,0 @@ -.context-menu-list{font-family:'Open Sans', sans-serif;width:200px;display:inline-block;position:absolute;list-style-type:none;border:1px solid #DDD;background:#fff;font-size:12px;margin:0;padding:5px} -.context-menu-item{background-color:#fff;position:relative;height:auto;word-wrap:break-word;-webkit-user-select:none;-moz-user-select:0;-ms-user-select:none;user-select:none;padding:5px 5px 5px 30px} -.context-menu-item:last-child{border:none} -.context-menu-separator{padding-bottom:0;border-bottom:1px solid #DDD} -.context-menu-item > label > input,.context-menu-item > label > textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text} -.context-menu-item.hover{cursor:pointer;background-color:#DDD} -.context-menu-item.disabled{color:#666} -.context-menu-input.hover,.context-menu-item.disabled.hover{cursor:default;background-color:#EEE} -.context-menu-submenu:after{content:">";color:#666;position:absolute;top:0;right:3px;z-index:1} -.context-menu-item.icon{min-height:18px;vertical-align:middle;background-repeat:no-repeat;background-position:4px 5px;width:auto;display:list-item} -.context-menu-item.icon-edit{background-image:url(../img/page_white_edit.png)} -.context-menu-item.icon-cut{background-image:url(../img/cut.png)} -.context-menu-item.icon-copy{background-image:url(../img/copy.png)} -.context-menu-item.icon-rename{background-image:url(../img/rename.png)} -.context-menu-item.icon-preview{background-image:url(../img/preview.png)} -.context-menu-item.icon-dimension{background-image:url(../img/dimension.png)} -.context-menu-item.icon-date{background-image:url(../img/date.png)} -.context-menu-item.icon-label{background-image:url(../img/label.png)} -.context-menu-item.icon-size{background-image:url(../img/size.png)} -.context-menu-item.icon-download{background-image:url(../img/download.png)} -.context-menu-item.icon-paste{background-image:url(../img/page_white_paste.png)} -.context-menu-item.icon-clipboard-apply {background-image:url(../img/clipboard_apply.png)} -.context-menu-item.icon-delete{background-image:url(../img/page_white_delete.png)} -.context-menu-item.icon-add{background-image:url(../img/page_white_add.png)} -.context-menu-item.icon-quit{background-image:url(../img/door.png)} -.context-menu-item.icon-info{background-image:url(../img/info.png)} -.context-menu-item.icon-extract{background-image:url(../img/zip.png)} -.context-menu-item.icon-url{background-image:url(../img/url.png)} -.context-menu-item.icon-edit_img{background-image:url(../img/edit_img.png)} -.context-menu-item.icon-duplicate{background-image:url(../img/duplicate.png)} -.context-menu-input > label > *{vertical-align:top} -.context-menu-input > label > input[type=checkbox],.context-menu-input > label > input[type=radio]{margin-left:-17px} -.context-menu-input > label > span{margin-left:5px} -.context-menu-input > label,.context-menu-input > label > input[type=text],.context-menu-input > label > textarea,.context-menu-input > label > select{display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box} -.context-menu-input > label > textarea{height:100px} -.context-menu-item > .context-menu-list{display:none;right:-5px;top:5px} -.context-menu-item.hover > .context-menu-list{display:block} -.context-menu-accesskey{text-decoration:underline} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css deleted file mode 100644 index 061ef75b..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css +++ /dev/null @@ -1 +0,0 @@ -*,*:after,*:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body,html{font-family:'Open Sans',sans-serif;font-size:100%;padding:0;margin:0}body{padding-top:32px;font-weight:200;background:#ececec;overflow:-moz-scrollbars-vertical}#qLpercentage{font-family:'Open Sans',sans-serif;font-size:40px;line-height:40px;color:#bbb;font-weight:200;height:60px;-webkit-border-radius:10px;border-radius:10px;padding:10px;text-shadow:1px 1px 2px #fff;filter:dropshadow(color=#fff, offx=1, offy=1)}#qLbar{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==);background:-moz-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(122,122,122,0.4)), color-stop(100%, rgba(122,122,122,0.4)));background:-webkit-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-o-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-ms-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:linear-gradient(to bottom, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#667a7a7a', endColorstr='#667a7a7a', GradientType=0);z-index:200;margin:0;overflow:hidden}[class^="rficon-"],[class*=" rficon-"]{display:inline-block;width:16px;height:16px;margin-top:1px;*margin-right:.3em;line-height:16px;vertical-align:text-top;background-position:0 0;background-repeat:no-repeat}.rficon-clipboard-apply{background-image:url(../img/clipboard_apply.png)}.rficon-clipboard-clear{background-image:url(../img/clipboard_clear.png)}.btn{-webkit-border-radius:0;border-radius:0}.container-fluid{padding-right:0 !important;margin-top:10px !important}.img-precontainer{margin:auto;width:100%;text-align:center;background:#fff;border:none}.img-container{height:91px;width:122px;padding:0;border:none;overflow:hidden;display:table-cell;text-align:center;vertical-align:middle;margin:auto}ul.breadcrumb{margin-bottom:5px;-webkit-border-radius:0;border-radius:0;padding-bottom:4px;padding-top:6px;background:#f0f0f0;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);border-bottom:1px solid #bbb}ul.breadcrumb .pull-left i{margin-top:2px}.alert{padding:8px 35px 8px 14px;margin-bottom:2px;border:1px solid #aaa;color:#666;font-weight:200;font-size:13px;-webkit-border-radius:0;border-radius:0;background:#fff}.img-container *,.img-container-mini *{vertical-align:middle}#help{display:none}iframe{overflow:auto;-webkit-overflow-scrolling:touch}.upload-tabbable{margin-left:5px;margin-right:5px}.upload-tabbable .upload-help{font-size:11px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff;text-align:center}.upload-tabbable .nav{margin:0}.upload-tabbable .nav li a{font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.upload-tabbable .tab-content{padding:5px;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-rigth:1px solid #ddd;background:#fff;margin-bottom:5px}input#filter-input{margin:0;width:84px;height:26px;vertical-align:bottom;margin-bottom:2px;-webkit-border-radius:0;border-radius:0;font-size:12px;font-weight:200;position:relative;left:1px}.qq-uploader .span9{margin-left:14px !important;width:690px !important}.space10{clear:both;height:10px}h4{font-size:12px;font-weight:200;margin:0;text-align:center;padding:0;margin-top:6px;line-height:18px}h3{font-size:14px;font-weight:200}.boxes{border:1px solid #ccc;word-wrap:break-word;background:#fff;-webkit-box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);min-height:115px;text-align:center}.container-fluid{padding:0 10px !important}body .avpw .avpw_primary_button,body .avpw .avpw_primary_button:link,body .avpw .avpw_primary_button:visited,body .avpw .avpw_primary_button:active{background-color:#999;color:#fff;background-image:none;border:none}body .avpw .avpw_primary_button:hover{border:none;background-color:#666}.uploader{position:fixed;top:50px;left:14px;margin:auto;width:100%;z-index:9999;overflow:hidden;background:#eee;padding-top:20px;border:1px solid #ccc;display:none;-webkit-box-shadow:0 0 10px 0 rgba(1,1,1,0.5);box-shadow:0 0 10px 0 rgba(1,1,1,0.5)}.download-form{margin-bottom:25px}.grid li i{margin-left:2px;margin-right:2px;z-index:0}.box,.boxx{text-align:center;word-wrap:break-word;vertical-align:top;text-align:left;position:relative;border:none;box-shadow:none;z-index:100;padding:4px}.box .btn{width:100%;background:none;box-shadow:none;border:none;z-index:200}.navbar{margin-bottom:0;border-bottom:1px solid #bbb}.navbar .navbar-inner{border:none;min-height:35px;-webkit-border-radius:0;border-radius:0;padding-bottom:2px;margin:0;padding-right:8px;padding-left:8px}.navbar .navbar-inner .container-fluid{margin:0;margin-top:0 !important;padding:0}.navbar .navbar-inner .container-fluid .brand{display:none}.navbar .navbar-inner .container-fluid .filters span{margin-top:0;font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}ul.sorting{position:absolute;left:-25px;top:20px;min-width:0;background:#eee}ul.sorting li a:hover{background:#aaa}.btn-group .dropdown-toggle.sorting-btn{background:none;border:none;box-shadow:none;position:relative;-webkit-box-shadow:none;top:-5px;font-size:13px}.btn-group .dropdown-toggle.sorting-btn:hover{background:none;border:none;box-shadow:none;-webkit-box-shadow:none}ul.sorting.dropdown-menu>li>a{font-size:12px;text-shadow:none}ul.sorting.dropdown-menu>li>a.ascending{background-image:url(../img/down.png);background-repeat:no-repeat;background-position:6px 8px}ul.sorting.dropdown-menu>li>a.descending{background-image:url(../img/up.png);background-repeat:no-repeat;background-position:6px 8px}.sorter-container{margin-top:5px;margin-bottom:0;-webkit-border-radius:0;border-radius:0;padding-bottom:4px;padding-top:6px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);background-color:#f5f5f5;position:relative;border-bottom:1px solid #bbb;height:24px}.sorter-container a.sorter{color:#000}.sorter-container a.ascending{padding-left:9px;background-image:url(../img/down.png);background-repeat:no-repeat;background-position:0 3px}.sorter-container a.descending{padding-left:9px;background-image:url(../img/up.png);background-repeat:no-repeat;background-position:0 4px}.sorter-container .img-dimension,.sorter-container .file-date,.sorter-container .file-size,.sorter-container .file-extension,.sorter-container .file-name,.sorter-container .file-operations{display:block;position:absolute;top:0;z-index:100;-webkit-box-shadow:none;box-shadow:none;text-align:left;font-size:13px;margin-top:1px;color:#999}.sorter-container .file-operations{width:110px;right:0}.sorter-container .img-dimension{width:65px;right:123px}.sorter-container .file-date{width:70px;right:188px}.sorter-container .file-size{width:55px;right:258px}.sorter-container .file-extension{width:40px;right:313px}.sorter-container .file-name{width:50px;left:52px}.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{font-size:12px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff;display:none}.view-controller{text-align:left}.view-controller .btn-group>.btn:first-child,.view-controller .btn-group>.btn:last-child{-webkit-border-radius:0;border-radius:0}.navbar .filters .btn{margin-bottom:2px;padding-top:2px;padding-bottom:2px;padding-left:8px;padding-right:8px;margin-top:5px}.filters .types{text-align:right}@media (max-width:780px){#view2{display:none}}@media (max-width:839px){body{padding-top:0}.filters .types{text-align:left}.navbar .navbar-inner .container-fluid .brand{display:block}.navbar .navbar-inner{padding-bottom:4px}.filters div.span3.half,.filters div.half.span6{float:none;width:100%}.container-fluid{margin:0 !important;padding:0}#qLbar{height:50px !important}}@media (min-width:400px) and (max-width:839px){.filters .row-fluid .half{width:48.61878453038674%;*width:48.56559304102504%;float:left}}.tooltip.in{z-index:10000;opacity:1;filter:alpha(opacity=1);font-weight:bold}.tooltip{font-weight:bold;z-index:10000}.grid{padding:0 0;margin:0 auto;list-style:none;-webkit-overflow-scrolling:touch}.grid li{display:inline-block;width:124px;border:none;margin:4px;margin-bottom:8px;padding:0;vertical-align:top}.grid figure{margin:0;position:relative;display:block;width:122px;margin:auto}.grid figure:hover{background:#e0e0e0 !important}.list-view1.grid li{width:100%}.list-view1.grid li figure{width:100%}.grid figcaption{text-align:center;padding:2px;padding-top:8px;color:#fff;height:30px;width:122px;margin-left:0;margin-right:0;position:absolute;top:auto;bottom:0;-webkit-box-shadow:inset 0 0 8px 0 rgba(41,41,41,0.5);box-shadow:inset 0 0 8px 0 rgba(41,41,41,0.5)}.grid figcaption a{margin:0;padding:3px}.grid figcaption h3{margin:0;padding:0;color:#fff}.grid h4{text-align:center;color:#000;padding:0;margin-bottom:4px;margin-top:4px}.grid figure .box{box-sizing:content-box}.list-view0.grid figure .box,.list-view1.grid figure .box,.list-view2.grid figure .box{max-width:100%;display:block;position:relative;overflow:hidden;z-index:1}.list-view0.grid figure .box h4.ellipsis,.list-view1.grid figure .box h4.ellipsis,.list-view2.grid figure .box h4.ellipsis{height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-view0.grid figure .box h4,.list-view1.grid figure .box h4,.list-view2.grid figure .box h4{z-index:1}.list-view0.grid figure .box h4 a,.list-view1.grid figure .box h4 a,.list-view2.grid figure .box h4 a{z-index:1}.list-view0.grid .selected,.list-view1.grid .selected,.list-view2.grid .selected{-webkit-box-shadow:0 0 10px 5px rgba(0,0,0,0.25);box-shadow:0 0 10px 5px rgba(0,0,0,0.25)}.no-touch .list-view0 figure .box{z-index:1;-webkit-transition:-webkit-transform .3s;-moz-transition:-moz-transform .3s;transition:transform .3s}.ui-state-highlight{border:1px solid #f00}.no-touch .list-view0 figure:hover .box,.no-touch .list-view0 figure.cs-hover .box{-webkit-box-shadow:0 0 4px 0 rgba(1,1,1,0.5);box-shadow:0 0 4px 0 rgba(1,1,1,0.5);-webkit-transform:translateY(-26px);-moz-transform:translateY(-26px);-ms-transform:translateY(-26px);transform:translateY(-26px)}.list-view0 figure:hover .box.no-effect,.list-view0 figure.cs-hover .box.no-effect,.no-effect{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.list-view0 .img-precontainer-mini{display:none;background:none}a,a:hover{color:#000;text-decoration:none}.back-directory .img-precontainer,.back-directory .img-precontainer-mini,.back-directory .box{background:none}form{margin:0;padding:0}.modal-body form,.modal-body input{margin:0}.modal-header h3{font-weight:300;font-size:20px}.list-view1.sorter-container{display:block}.list-view0.sorter-container,.list-view2.sorter-container{display:none}.list-view0.grid .img-precontainer .img-container img{max-width:122px !important;max-height:91px !important}.list-view0.grid .img-precontainer .img-container img.icon{width:122px;margin-top:0}.list-view0.grid .img-precontainer .filetype{position:absolute;top:0;width:120px;text-align:center;color:#fff;font-size:13px;line-height:22px}.list-view0.grid .cover{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-moz-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(255,255,255,0.25)), color-stop(100%, rgba(255,255,255,0.25)));background:-webkit-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-o-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-ms-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:linear-gradient(to bottom, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#40ffffff', endColorstr='#40ffffff', GradientType=0);width:122px;position:absolute;top:22px;right:0;height:69px}.list-view0.grid .box{background:#fff}.list-view0.grid .directory{background:#ddd}.list-view0.grid figure.back-directory .directory{background:#bbb}.list-view0.grid figcaption{background:#fff}.list-view1.grid li,.list-view2.grid li{margin:0}.list-view1.grid li.back figure.back-directory,.list-view2.grid li.back figure.back-directory{height:34px}.list-view1.grid li:nth-child(odd) figure,.list-view2.grid li:nth-child(odd) figure{background:#f9f9f9}.list-view1.grid li:nth-child(odd) figure.directory,.list-view2.grid li:nth-child(odd) figure.directory{background:#eaeaea}.list-view1.grid li figure,.list-view2.grid li figure{border-bottom:1px solid #ccc;background:#fff}.list-view1.grid li figure.back-directory,.list-view2.grid li figure.back-directory{background:#bbb}.list-view1.grid li figure.back-directory .box,.list-view2.grid li figure.back-directory .box{background:none}.list-view1.grid li figure.directory,.list-view2.grid li figure.directory{background:#efefef}.list-view1.grid li figure.directory box,.list-view2.grid li figure.directory box{padding:0;min-height:10px}.list-view1.grid li figure .box,.list-view2.grid li figure .box{margin-left:50px;-webkit-transition:none;-moz-transition:none;transition:none}.list-view1.grid li figure .box h4,.list-view2.grid li figure .box h4{padding-top:1px;font-size:13px;text-align:left}.list-view1.grid .img-precontainer-mini,.list-view2.grid .img-precontainer-mini{display:block;position:absolute;width:45px;height:34px;overflow:hidden;text-align:center}.list-view1.grid .img-precontainer-mini img,.list-view2.grid .img-precontainer-mini img{height:34px}.list-view1.grid .img-precontainer-mini .filetype,.list-view2.grid .img-precontainer-mini .filetype{position:absolute;top:5px;text-align:center;left:5px;padding:1px 2px;font-size:13px;line-height:22px;width:34px;height:24px;color:#fff;background:#333}.list-view1.grid .cover,.list-view2.grid .cover{display:none}.list-view1.grid .img-container-mini,.list-view2.grid .img-container-mini{width:45px;height:34px;border:none;overflow:hidden;display:table-cell;text-align:center;vertical-align:middle;margin:auto}.list-view1.grid .img-precontainer-mini.original-thumb,.list-view2.grid .img-precontainer-mini.original-thumb{padding:0}.list-view1.grid .img-precontainer-mini.original-thumb img,.list-view2.grid .img-precontainer-mini.original-thumb img{width:auto;margin:0;height:34px}.list-view1.grid .img-precontainer-mini.original-thumb img.original,.list-view2.grid .img-precontainer-mini.original-thumb img.original{width:auto;height:auto}.list-view1.grid .img-precontainer,.list-view2.grid .img-precontainer{display:none}.list-view1.grid figcaption,.list-view2.grid figcaption{background:none;width:120px;position:absolute;right:0;top:0;z-index:1;bottom:0;-webkit-box-shadow:none;box-shadow:none;text-align:right}.list-view1.grid .selected,.list-view2.grid .selected{-webkit-box-shadow:0 0 3px 2px rgba(0,0,0,0.2);box-shadow:0 0 3px 2px rgba(0,0,0,0.2)}.list-view1.grid .img-dimension,.list-view1.grid .file-date,.list-view1.grid .file-size,.list-view1.grid .file-extension{overflow:hidden;display:block;position:absolute;top:0;z-index:1;-webkit-box-shadow:none;box-shadow:none;text-align:left;margin-top:7px}.list-view1.grid .img-dimension{width:65px;right:120px}.list-view1.grid .file-date{width:70px;right:185px}.list-view1.grid .file-size{width:55px;right:255px}.list-view1.grid .file-extension{width:40px;right:310px}.list-view1.grid figure .box{padding-right:352px}.list-view2.grid figure .box{padding-right:115px}@media (max-width:610px){.list-view1.grid figure .box{padding-right:312px}.list-view1.grid figure .file-extension{display:none}.sorter-container .file-extension{display:none}}@media (max-width:565px){.list-view1.grid figure .box{padding-right:257px}.list-view1.grid figure .file-size{display:none}.sorter-container .file-size{display:none}}@media (max-width:495px){.list-view1.grid figure .box{padding-right:187px}.list-view1.grid figure .file-date{display:none}.sorter-container .file-date{display:none}}@media (max-width:430px){.list-view1.grid figure .box{padding-right:115px}.list-view1.grid figure .img-dimension{display:none}.sorter-container .img-dimension{display:none}.breadcrumb{margin-left:0;margin-right:0}}.list-view2.grid .img-precontainer-mini .filetype.pdf,.list-view1.grid .img-precontainer-mini .filetype.pdf{background:#cb0011}.list-view2.grid .img-precontainer-mini .filetype.css,.list-view1.grid .img-precontainer-mini .filetype.css{background:#d10698}.list-view2.grid .img-precontainer-mini .filetype.ai,.list-view1.grid .img-precontainer-mini .filetype.ai{background:#d6772f}.list-view2.grid .img-precontainer-mini .filetype.psd,.list-view1.grid .img-precontainer-mini .filetype.psd{background:#0960a4}.list-view2.grid .img-precontainer-mini .filetype.html,.list-view1.grid .img-precontainer-mini .filetype.html,.list-view2.grid .img-precontainer-mini .filetype.xhtml,.list-view1.grid .img-precontainer-mini .filetype.xhtml{background:#035bc4}.list-view2.grid .img-precontainer-mini .filetype.fla,.list-view1.grid .img-precontainer-mini .filetype.fla,.list-view2.grid .img-precontainer-mini .filetype.flv,.list-view1.grid .img-precontainer-mini .filetype.flv{background:#cf302e}.list-view2.grid .img-precontainer-mini .filetype.ppt,.list-view1.grid .img-precontainer-mini .filetype.ppt,.list-view2.grid .img-precontainer-mini .filetype.pptx,.list-view1.grid .img-precontainer-mini .filetype.pptx{background:#da5b00}.list-view2.grid .img-precontainer-mini .filetype.xls,.list-view1.grid .img-precontainer-mini .filetype.xls,.list-view2.grid .img-precontainer-mini .filetype.xlsx,.list-view1.grid .img-precontainer-mini .filetype.xlsx,.list-view2.grid .img-precontainer-mini .filetype.css,.list-view1.grid .img-precontainer-mini .filetype.css{background:#1a712c}.list-view2.grid .img-precontainer-mini .filetype.rts,.list-view1.grid .img-precontainer-mini .filetype.rts,.list-view2.grid .img-precontainer-mini .filetype.doc,.list-view1.grid .img-precontainer-mini .filetype.doc,.list-view2.grid .img-precontainer-mini .filetype.docx,.list-view1.grid .img-precontainer-mini .filetype.docx{background:#002093}.list-view2.grid .img-precontainer-mini .filetype.rar,.list-view1.grid .img-precontainer-mini .filetype.rar,.list-view2.grid .img-precontainer-mini .filetype.zip,.list-view1.grid .img-precontainer-mini .filetype.zip,.list-view2.grid .img-precontainer-mini .filetype.gzip,.list-view1.grid .img-precontainer-mini .filetype.gzip{background:#fe9221}.list-view2.grid .img-precontainer-mini .filetype.mp4,.list-view1.grid .img-precontainer-mini .filetype.mp4,.list-view2.grid .img-precontainer-mini .filetype.mpeg,.list-view1.grid .img-precontainer-mini .filetype.mpeg,.list-view2.grid .img-precontainer-mini .filetype.mov,.list-view1.grid .img-precontainer-mini .filetype.mov,.list-view2.grid .img-precontainer-mini .filetype.avi,.list-view1.grid .img-precontainer-mini .filetype.avi,.list-view2.grid .img-precontainer-mini .filetype.mpg,.list-view1.grid .img-precontainer-mini .filetype.mpg,.list-view2.grid .img-precontainer-mini .filetype.wma,.list-view1.grid .img-precontainer-mini .filetype.wma,.list-view2.grid .img-precontainer-mini .filetype.webm,.list-view1.grid .img-precontainer-mini .filetype.webm{background:#31231e}.list-view2.grid .img-precontainer-mini .filetype.mp3,.list-view1.grid .img-precontainer-mini .filetype.mp3,.list-view2.grid .img-precontainer-mini .filetype.m4a,.list-view1.grid .img-precontainer-mini .filetype.m4a,.list-view2.grid .img-precontainer-mini .filetype.ac3,.list-view1.grid .img-precontainer-mini .filetype.ac3,.list-view2.grid .img-precontainer-mini .filetype.aiff,.list-view1.grid .img-precontainer-mini .filetype.aiff,.list-view2.grid .img-precontainer-mini .filetype.mid,.list-view1.grid .img-precontainer-mini .filetype.mid,.list-view2.grid .img-precontainer-mini .filetype.ogg,.list-view1.grid .img-precontainer-mini .filetype.ogg,.list-view2.grid .img-precontainer-mini .filetype.wav,.list-view1.grid .img-precontainer-mini .filetype.wav{background:#9f008b}.list-view2.grid .img-precontainer-mini .filetype.odt,.list-view1.grid .img-precontainer-mini .filetype.odt,.list-view2.grid .img-precontainer-mini .filetype.ots,.list-view1.grid .img-precontainer-mini .filetype.ots,.list-view2.grid .img-precontainer-mini .filetype.ott,.list-view1.grid .img-precontainer-mini .filetype.ott,.list-view2.grid .img-precontainer-mini .filetype.odb,.list-view1.grid .img-precontainer-mini .filetype.odb,.list-view2.grid .img-precontainer-mini .filetype.odg,.list-view1.grid .img-precontainer-mini .filetype.odg,.list-view2.grid .img-precontainer-mini .filetype.otp,.list-view1.grid .img-precontainer-mini .filetype.otp,.list-view2.grid .img-precontainer-mini .filetype.otg,.list-view1.grid .img-precontainer-mini .filetype.otg,.list-view2.grid .img-precontainer-mini .filetype.odf,.list-view1.grid .img-precontainer-mini .filetype.odf,.list-view2.grid .img-precontainer-mini .filetype.ods,.list-view1.grid .img-precontainer-mini .filetype.ods,.list-view2.grid .img-precontainer-mini .filetype.odp,.list-view1.grid .img-precontainer-mini .filetype.odp{background:#367bbe}.list-view2.grid .img-precontainer-mini .filetype.jpg,.list-view1.grid .img-precontainer-mini .filetype.jpg,.list-view2.grid .img-precontainer-mini .filetype.jpeg,.list-view1.grid .img-precontainer-mini .filetype.jpeg,.list-view2.grid .img-precontainer-mini .filetype.png,.list-view1.grid .img-precontainer-mini .filetype.png,.list-view2.grid .img-precontainer-mini .filetype.bmp,.list-view1.grid .img-precontainer-mini .filetype.bmp,.list-view2.grid .img-precontainer-mini .filetype.gif,.list-view1.grid .img-precontainer-mini .filetype.gif,.list-view2.grid .img-precontainer-mini .filetype.tiff,.list-view1.grid .img-precontainer-mini .filetype.tiff,.list-view2.grid .img-precontainer-mini .filetype.svg,.list-view1.grid .img-precontainer-mini .filetype.svg{background:#cfa554}.list-view2.grid .img-precontainer-mini .filetype.txt,.list-view1.grid .img-precontainer-mini .filetype.txt,.list-view2.grid .img-precontainer-mini .filetype.sql,.list-view1.grid .img-precontainer-mini .filetype.sql,.list-view2.grid .img-precontainer-mini .filetype.xml,.list-view1.grid .img-precontainer-mini .filetype.xml,.list-view2.grid .img-precontainer-mini .filetype.log,.list-view1.grid .img-precontainer-mini .filetype.log,.list-view2.grid .img-precontainer-mini .filetype.iso,.list-view1.grid .img-precontainer-mini .filetype.iso,.list-view2.grid .img-precontainer-mini .filetype.dmg,.list-view1.grid .img-precontainer-mini .filetype.dmg{background:#cacaca}.list-view2.grid .img-precontainer-mini .filetype.ade,.list-view1.grid .img-precontainer-mini .filetype.ade,.list-view2.grid .img-precontainer-mini .filetype.adp,.list-view1.grid .img-precontainer-mini .filetype.adp,.list-view2.grid .img-precontainer-mini .filetype.mdb,.list-view1.grid .img-precontainer-mini .filetype.mdb,.list-view2.grid .img-precontainer-mini .filetype.accdb,.list-view1.grid .img-precontainer-mini .filetype.accdb{background:#b61c19} \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less deleted file mode 100644 index 74d25b12..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less +++ /dev/null @@ -1,926 +0,0 @@ -*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } -body, html { - font-family: 'Open Sans', sans-serif; - font-size: 100%; padding: 0; margin: 0;} -body{ - padding-top: 32px; - font-weight:200; - background:#ececec; - overflow: -moz-scrollbars-vertical; -} - -#qLpercentage{ - font-family: 'Open Sans', sans-serif; - font-size: 40px; - line-height: 40px; - color:#bbbbbb; - font-weight: 200; - height: 60px; - -webkit-border-radius: 10px; - border-radius: 10px; - padding: 10px; - text-shadow: 1px 1px 2px #ffffff; - filter: dropshadow(color=#ffffff, offx=1, offy=1); -} -#qLbar{ - /* IE9 SVG, needs conditional override of 'filter' to 'none' */ - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==); - background: -moz-linear-gradient(top, rgba(122,122,122,0.4) 0%, rgba(122,122,122,0.4) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(122,122,122,0.4)), color-stop(100%,rgba(122,122,122,0.4))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* IE10+ */ - background: linear-gradient(to bottom, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#667a7a7a', endColorstr='#667a7a7a',GradientType=0 ); /* IE6-8 */ - - z-index:200; - margin:0px; - overflow: hidden; -} - - -[class^="rficon-"],[class*=" rficon-"] { - display:inline-block; - width:16px; - height:16px; - margin-top:1px; - *margin-right:.3em; - line-height:16px; - vertical-align:text-top; - background-position: 0 0; - background-repeat:no-repeat -} - -.rficon-clipboard-apply { - background-image:url(../img/clipboard_apply.png); -} - -.rficon-clipboard-clear { - background-image:url(../img/clipboard_clear.png); -} - -.btn{ - -webkit-border-radius: 0px; - border-radius: 0px; -} -.container-fluid{padding-right:0 !important;margin-top:10px !important;} -.img-precontainer{ - margin: auto; - width: 100%; - text-align: center; - background: white; - border:none; -} -.img-container{ - height: 91px; - width: 122px; - padding: 0px; - border:none; - overflow: hidden; - display: table-cell; - text-align: center; - vertical-align: middle; - margin: auto; -} -ul.breadcrumb{ - margin-bottom:5px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 4px; - padding-top: 6px; - background: #f0f0f0; - -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - box-shadow: 0 1px 4px rgba(0,0,0,0.065); - border-bottom: 1px solid #bbbbbb; - - .pull-left i{ margin-top:2px;} -} - -.alert { - padding: 8px 35px 8px 14px; - margin-bottom:2px; - border: 1px solid #aaaaaa; - color:#666666; - font-weight: 200; - font-size: 13px; - -webkit-border-radius: 0px; - border-radius: 0px; - background: white; -} -.img-container * ,.img-container-mini * { - vertical-align: middle; -} -#help{ - display: none; -} - -/*\*//*/ -.img-container,.img-container-mini { - display: block; -} -.img-container span, .img-container-mini span { - display: inline-block; - height: 100%; - width: 1px; -} -/**/ - -iframe{ - overflow: auto; - -webkit-overflow-scrolling:touch; -} -.upload-tabbable{ - margin-left: 5px; - margin-right: 5px; - - .upload-help{ - font-size: 11px; - font-weight: 200; - color: #777; - text-shadow: 0 1px 0 #fff; - text-align: center; - } - .nav{ - margin:0px; - li a{ - font-size: 13px; - font-weight: 200; - color: #777; - text-shadow: 0 1px 0 #fff; - } - } - .tab-content{ - padding: 5px; - border-bottom: 1px solid #dddddd; - border-left: 1px solid #dddddd; - border-rigth: 1px solid #dddddd; - background: white; - margin-bottom: 5px; - } -} -input#filter-input{ - margin:0px; - width: 84px; - height: 26px; - vertical-align: bottom; - margin-bottom: 2px; - -webkit-border-radius: 0; - border-radius: 0; - font-size: 12px; - font-weight:200; - position:relative; - left:1px; -} - -.qq-uploader .span9{margin-left:14px !important;width:690px !important;} -.space10{ clear:both; height:10px; } - -h4{ font-size:12px; font-weight:200; margin: 0px; text-align: center; padding: 0px; margin-top:6px; line-height: 18px; } -h3{ font-size:14px; font-weight:200;} -.boxes{ border:1px solid #CCCCCC; word-wrap: break-word; background:white; --webkit-box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2);box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2); min-height:115px; -text-align: center;} -.container-fluid{ padding:0px 10px !important;} - -body .avpw .avpw_primary_button, -body .avpw .avpw_primary_button:link, -body .avpw .avpw_primary_button:visited, -body .avpw .avpw_primary_button:active { - background-color: #999999; - color: #ffffff; - background-image:none; - border:none; -} - -body .avpw .avpw_primary_button:hover{ - border:none; - background-color: #666666; -} - -.uploader{ - position:fixed; - top:50px; - left:14px; - margin:auto; - width:100%; - z-index:9999; - overflow: hidden; - background:#eeeeee; - padding-top:20px; - border:1px solid #cccccc; - display:none; - -webkit-box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5); - box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5); -} -.download-form{ - margin-bottom:25px; -} - -.grid li i{ - margin-left:2px; - margin-right: 2px; - z-index:0; -} -.box,.boxx{ - text-align: center; - word-wrap: break-word; - vertical-align: top; - text-align: left; - position: relative; - border: none; - box-shadow: none; - z-index: 100; - padding: 4px; -} -.box .btn{ - width: 100%; - background: none; - box-shadow: none; - border:none; - z-index: 200; -} -.navbar{ - margin-bottom: 0px; - border-bottom: 1px solid #bbbbbb; - .navbar-inner{ - border: none; - min-height: 35px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 2px; - margin: 0px; - padding-right: 8px; - padding-left: 8px; - .container-fluid{ - margin: 0px; - margin-top: 0px !important; - padding: 0px; - .brand{ - display: none; - } - .filters span{ - margin-top:0px; - font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff; } - } - } -} - -ul.sorting{ - position: absolute; - left: -25px; - top:20px; - min-width: 0px; - background: #eeeeee; - li a:hover{ - background: #aaaaaa; - } -} -.btn-group .dropdown-toggle.sorting-btn{ - background: none; - border: none; - box-shadow: none; - position: relative; - -webkit-box-shadow:none; - top:-5px; - font-size: 13px; -} -.btn-group .dropdown-toggle.sorting-btn:hover{ - background: none; - border: none; - box-shadow: none; - -webkit-box-shadow:none; -} -ul.sorting.dropdown-menu>li>a{ - font-size: 12px; - text-shadow: none; - &.ascending{ - background-image: url(../img/down.png); - background-repeat: no-repeat; - background-position: 6px 8px; - } - &.descending{ - background-image: url(../img/up.png); - background-repeat: no-repeat; - background-position: 6px 8px; - } -} - -.sorter-container{ - a.sorter{ - color:black; - } - - a.ascending{ - padding-left:9px; - background-image: url(../img/down.png); - background-repeat: no-repeat; - background-position: 0px 3px; - } - a.descending{ - padding-left:9px; - background-image: url(../img/up.png); - background-repeat: no-repeat; - background-position: 0px 4px; - } - margin-top:5px; - margin-bottom:0px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 4px; - padding-top: 6px; - -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - box-shadow: 0 1px 4px rgba(0,0,0,0.065); - background-color: #f5f5f5; - position: relative; - border-bottom: 1px solid #bbbbbb; - height: 24px; - .img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{ - display: block;position: absolute; - top: 0px; - z-index: 100; - -webkit-box-shadow: none; - box-shadow: none; - text-align: left; - font-size: 13px; - margin-top: 1px; - color:#999999; - } - .file-operations{ - width: 110px; - right:0px; - } - .img-dimension{ - width: 65px; - right: 123px; - } - .file-date{ - width: 70px; - right: 188px; - } - .file-size{ - width: 55px; - right: 258px; - } - - .file-extension{ - width: 40px; - right: 313px; - } - - .file-name{ - width: 50px; - left: 52px; - } -} - -.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{ - font-size:12px; - font-weight:200; - color:#777;text-shadow:0 1px 0 #fff; - display: none; -} - - -.view-controller{ - text-align: left; - .btn-group>.btn:first-child,.btn-group>.btn:last-child{ - -webkit-border-radius: 0px; - border-radius: 0px; - } -} - -.navbar .filters .btn { - margin-bottom: 2px; - padding-top:2px; - padding-bottom:2px; - padding-left: 8px; - padding-right: 8px; - margin-top:5px; -} -.filters .types{ - text-align: right; -} - - -@media(max-width:780px){ - #view2{ - display: none; - } -} -@media(max-width:839px){ - body{ - padding-top: 0px; - } - .filters .types{ - text-align: left; - } - .navbar .navbar-inner .container-fluid .brand{ - display: block; - } - .navbar .navbar-inner{ - padding-bottom: 4px; - } - .filters{ - div.span3.half,div.half.span6{ - float:none; - width:100%; - - } - } - - .container-fluid{ - margin:0px !important; - padding: 0px; - } - #qLbar{ - height:50px !important; - } -} -@media(min-width:400px) and (max-width:839px){ - .filters .row-fluid .half{ - width:48.61878453038674%;*width:48.56559304102504%; float:left; - } -} -.tooltip.in{ - z-index: 10000; - opacity:1; - filter:alpha(opacity=1); - font-weight: bold; -} - -.tooltip{ - font-weight: bold; - z-index: 10000; -} - -/* GRID */ -.grid { - padding: 0px 0px; - margin: 0 auto; - list-style: none; - -webkit-overflow-scrolling: touch; -} - -.grid li { - display: inline-block; - width: 124px; - border:none; - margin: 4px; - margin-bottom:8px; - padding: 0px; - vertical-align: top; -} - -.grid figure { - margin: 0; - position: relative; - display: block; - width: 122px; - margin: auto; - - &:hover{ background: #e0e0e0 !important;} -} -.list-view1.grid li{ - width:100%; - figure{ - width:100%; - } -} - -.grid figcaption { - text-align: center; - padding: 2px; - padding-top: 8px; - color: white; - height: 30px; - width: 122px; - margin-left:0px; - margin-right: 0px; - position: absolute; - top: auto; - bottom: 0; - -webkit-box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5); - box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5); - - a{ - margin: 0px; - padding: 3px; - } - h3 { - margin: 0; - padding: 0; - color: #fff; - } -} - - -.grid h4{ - text-align: center; - color: black; - padding: 0px; - margin-bottom: 4px; - margin-top: 4px; -} - - -/* Individual Caption Styles */ - - -/* Caption Style 2 */ - -.grid figure .box { - box-sizing: content-box; -} - -.list-view0.grid,.list-view1.grid,.list-view2.grid{ - figure{ - .box{ - max-width: 100%; - display: block; - position: relative; - overflow: hidden; - z-index: 1; - h4.ellipsis{ - height:18px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - h4{ - z-index: 1; - a{ - z-index: 1; - } - } - } - } - - .selected{ - -webkit-box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25); - box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25); - - //border: 1px solid #777777; - } -} - -.no-touch .list-view0 figure .box{ - z-index: 1; - -webkit-transition: -webkit-transform 0.3s; - -moz-transition: -moz-transform 0.3s; - transition: transform 0.3s; -} -.ui-state-highlight{ - border:1px solid red; -} - -.no-touch .list-view0 figure:hover .box, -.no-touch .list-view0 figure.cs-hover .box { - -webkit-box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5); - box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5); - -webkit-transform: translateY(-26px); - -moz-transform: translateY(-26px); - -ms-transform: translateY(-26px); - transform: translateY(-26px); -} -.list-view0 figure:hover .box.no-effect, -.list-view0 figure.cs-hover .box.no-effect,.no-effect{ - - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transform: none; - -moz-transform: none; - -ms-transform: none; - transform: none; -} - - -.list-view0 .img-precontainer-mini{ - display: none; - background: none; -} -a,a:hover{ - color:black; - text-decoration: none; -} - -.back-directory{ - .img-precontainer,.img-precontainer-mini,.box{ - background: none; - } -} -form{ - margin:0px; - padding: 0px; -} -.modal-body{ - form,input{ - margin:0px; - } -} - -.modal-header h3{ - font-weight: 300; - font-size: 20px; -} - -/* LIST VIEW */ -.list-view1.sorter-container{ - display: block; -} - -.list-view0.sorter-container, .list-view2.sorter-container{ - display: none; -} -.list-view0.grid{ - .img-precontainer{ - .img-container{ - - img{ - max-width:122px !important; - max-height:91px !important; - } - img.icon{ - width: 122px; - margin-top:0px; - } - } - .filetype{ - position:absolute; - top:0px; - width:120px; - text-align:center; - color:white; - font-size: 13px; - line-height: 22px; - - } - } - .cover{ -/* IE9 SVG, needs conditional override of 'filter' to 'none' */ -background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); -background: -moz-linear-gradient(top, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.25) 100%); /* FF3.6+ */ -background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.25)), color-stop(100%,rgba(255,255,255,0.25))); /* Chrome,Safari4+ */ -background: -webkit-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Chrome10+,Safari5.1+ */ -background: -o-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Opera 11.10+ */ -background: -ms-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* IE10+ */ -background: linear-gradient(to bottom, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* W3C */ -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#40ffffff', endColorstr='#40ffffff',GradientType=0 ); /* IE6-8 */ - - - width: 122px; - position:absolute; - top:22px; - right:0px; - height: 69px; - } - .box{ - background: white; - } - .directory{ - background: #dddddd; - } - figure.back-directory{ - .directory{ - background: #bbbbbb; - } - } - - figcaption{ - background:#ffffff; - } -} - -.list-view1.grid , .list-view2.grid { - li{ - margin: 0px; - &.back{ - figure.back-directory{ - height: 34px; - } - } - } - li:nth-child(odd) figure {background: #f9f9f9; } - li:nth-child(odd) figure.directory {background: #eaeaea; } - - li figure{ - border-bottom: 1px solid #cccccc; - background: white; - &.back-directory{ - background: #bbbbbb; - .box{ - background: none; - } - } - &.directory{ - background: #efefef; - box{ - padding: 0px; - min-height: 10px; - } - } - .box{ - h4{ - padding-top:1px; - font-size: 13px; - text-align: left; - } - margin-left: 50px; - -webkit-transition: none; - -moz-transition: none; - transition: none; - } - } - .img-precontainer-mini{ - display: block; - position: absolute; - width: 45px; - height: 34px; - overflow: hidden; - text-align: center; - img{ - height: 34px; - } - .filetype{ - position:absolute; - top:5px; - text-align: center; - left:5px; - padding:1px 2px; - font-size: 13px; - line-height: 22px; - width:34px; - height: 24px; - color:white; - background: #333333; - } - } - .cover{ - display: none; - } - .img-container-mini{ - width: 45px; - height: 34px; - border:none; - overflow: hidden; - display: table-cell; - text-align: center; - vertical-align: middle; - margin: auto; - - } - .img-precontainer-mini.original-thumb{ - padding: 0px; - img{ - width: auto; - margin: 0px; - height: 34px; - } - - img.original{ - width: auto; - width: auto; - height: auto; - } - } - - .img-precontainer{ - display: none; - } - - figcaption{ - background:none; - width: 120px; - position: absolute; - right: 0px; - top: 0px; - z-index: 1; - bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - text-align: right; - - } - .selected{ - -webkit-box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2); - box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2); - } -} - -.list-view1.grid{ - .img-dimension,.file-date,.file-size,.file-extension{ - overflow: hidden; - display: block;position: absolute; - top: 0px; - z-index: 1; - -webkit-box-shadow: none; - box-shadow: none; - text-align: left; - margin-top:7px; - } - .img-dimension{ - width: 65px; - right: 120px; - } - .file-date{ - width: 70px; - right: 185px; - } - .file-size{ - width: 55px; - right: 255px; - } - .file-extension{ - width: 40px; - right: 310px; - } - figure .box{ - padding-right: 352px; - } -} -.list-view2.grid{ - figure{ - .box{ - padding-right: 115px; - } - } -} - - -@media(max-width:610px){ - .list-view1.grid figure{ - .box{ - padding-right: 312px; - } - .file-extension{ - display: none; - } - } - .sorter-container .file-extension{ - display: none; - } -} - -@media(max-width:565px){ - .list-view1.grid figure{ - .box{ - padding-right: 257px; - } - .file-size{ - display: none; - } - } - .sorter-container .file-size{ - display: none; - } -} - -@media(max-width:495px){ - .list-view1.grid figure{ - .box{ - padding-right: 187px; - } - .file-date{ - display: none; - } - } - .sorter-container .file-date{ - display: none; - } -} - -@media(max-width:430px){ - .list-view1.grid figure{ - .box{ - padding-right: 115px; - } - .img-dimension{ - display: none; - } - } - .sorter-container .img-dimension{ - display: none; - } - .breadcrumb{ - margin-left:0px; - margin-right:0px; - } -} - -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.pdf{ background:#CB0011; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.css{ background:#D10698; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ai{ background:#D6772F; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.psd{ background:#0960A4; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.html,&.xhtml{ background:#035BC4; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.fla,&.flv{ background:#CF302E; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ppt,&.pptx{ background:#DA5B00; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.xls,&.xlsx,&.css{ background:#1A712C; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rts,&.doc,&.docx{ background:#002093; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rar,&.zip,&.gzip{ background:#FE9221; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp4,&.mpeg,&.mov,&.avi,&.mpg,&.wma,&.webm{ background:#31231E; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp3,&.m4a,&.ac3,&.aiff,&.mid,&.ogg,&.wav{ background:#9F008B; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.odt,&.ots,&.ott,&.odb,&.odg,&.otp,&.otg,&.odf,&.ods,&.odp{ background:#367BBE; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.jpg,&.jpeg,&.png,&.bmp,&.gif,&.tiff,&.svg{ background:#CFA554; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.txt,&.sql,&.xml,&.log,&.iso,&.dmg{ background:#CACACA; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ade,&.adp,&.mdb,&.accdb{ background:#B61C19; }}} diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php deleted file mode 100644 index 75563e40..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php +++ /dev/null @@ -1,901 +0,0 @@ -console.log('The ".$lang." language file is not readable! Falling back...');"; - } - } - -// add lang file to session for easy include - $_SESSION['RF']['language_file'] = $language_file; - require_once $language_file; - - if(!isset($_GET['type'])) $_GET['type']=0; - if(!isset($_GET['field_id'])) $_GET['field_id']=''; - - $field_id=isset($_GET['field_id']) ? fix_get_params($_GET['field_id']) : ''; - $type_param=fix_get_params($_GET['type']); - - $get_params = http_build_query(array( - 'type' => $type_param, - 'lang' => $lang, - 'popup' => $popup, - 'field_id' => $field_id, - 'akey' => (isset($_GET['akey']) && $_GET['akey'] != '' ? $_GET['akey'] : 'key'), - 'fldr' => '' - )); - ?> - - - - - - - - - Responsive FileManager - - - - - - - console.log("Error: Spritemap not found!");'; - // exit(); - } - } - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " /> - - " /> - - - - - - - - - - - - - - - - - " /> - - - -
-
-
-
- - -
-
- -
- - -
- :
- - - - - - - - - - -
-
- -
-
-
-
- -
-
-
- -
- - - -
- - $file){ - if($file==".") $current_folder=array('file'=>$file); - elseif($file=="..") $prev_folder=array('file'=>$file); - elseif(is_dir($current_path.$rfm_subfolder.$subdir.$file)){ - $date=filemtime($current_path.$rfm_subfolder.$subdir. $file); - $size=foldersize($current_path.$rfm_subfolder.$subdir. $file); - $file_ext=lang_Type_dir; - $sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext); - }else{ - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - $date=filemtime($file_path); - $size=filesize($file_path); - $file_ext = substr(strrchr($file,'.'),1); - $sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext); - } - } - - function filenameSort($x, $y) { - return $x['file'] < $y['file']; - } - function dateSort($x, $y) { - return $x['date'] < $y['date']; - } - function sizeSort($x, $y) { - return $x['size'] - $y['size']; - } - function extensionSort($x, $y) { - return $x['extension'] < $y['extension']; - } - - switch($sort_by){ - case 'name': - usort($sorted, 'filenameSort'); - break; - case 'date': - usort($sorted, 'dateSort'); - break; - case 'size': - usort($sorted, 'sizeSort'); - break; - case 'extension': - usort($sorted, 'extensionSort'); - break; - default: - break; - - } - - if($descending){ - $sorted=array_reverse($sorted); - } - - $files=array_merge(array($prev_folder),array($current_folder),$sorted); - ?> - - - - - - - - - -
-
- -
-
There is an error! The upload folder there isn't. Check your config.php file.
- -

- -
- - - - - - - - -
    " id="main-item-container"> - -
  • >
    directory" data-type=""> - "> -
    -
    - .jpg" alt="folder" /> -
    -
    -
    -
    - - .png" alt="folder" /> -
    -
    - -
    -

    -
    -
    - - - -
    -

    ">">

    -
    - - - - -
    -
    -
    -
    - " title="" data-path="" data-thumb=""> - - " title="" data-confirm="" data-path="" data-thumb=""> - - -
    - -
    -
  • - $file_array) { - $file=$file_array['file']; - - if($file == '.' || $file == '..' || is_dir($current_path.$rfm_subfolder.$subdir.$file) || in_array($file, $hidden_files) || !in_array(fix_strtolower($file_array['extension']), $ext) || ($filter!='' && strpos($file,$filter)===false)) - continue; - - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - //check if file have illegal caracter - - $filename=substr($file, 0, '-' . (strlen($file_array['extension']) + 1)); - - if($file!=fix_filename($file,$transliteration)){ - $file1=fix_filename($file,$transliteration); - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - if(file_exists($file_path1)){ - $i = 1; - $info=pathinfo($file1); - while(file_exists($current_path.$rfm_subfolder.$subdir.$info['filename'].".[".$i."].".$info['extension'])) { - $i++; - } - $file1=$info['filename'].".[".$i."].".$info['extension']; - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - } - - $filename=substr($file1, 0, '-' . (strlen($file_array['extension']) + 1)); - rename_file($file_path,fix_filename($filename,$transliteration),$transliteration); - $file=$file1; - $file_array['extension']=fix_filename($file_array['extension'],$transliteration); - $file_path=$file_path1; - } - - $is_img=false; - $is_video=false; - $is_audio=false; - $show_original=false; - $show_original_mini=false; - $mini_src=""; - $src_thumb=""; - $src_thumb_url=""; - $extension_lower=fix_strtolower($file_array['extension']); - if(in_array($extension_lower, $ext_img)){ - $src = $base_url . $cur_dir . rawurlencode($file); - $mini_src = $src_thumb = $thumbs_path.$subdir. $file; - $src_thumb_url = $base_url . $cur_thumbs_dir.$subdir. $file; - $mini_src_url = $base_url .$thumbs_dir.$subdir. $file; - //add in thumbs folder if not exist - if(!file_exists($src_thumb)){ - try { - create_img_gd($file_path, $src_thumb, 122, 91); - new_thumbnails_creation($current_path.$rfm_subfolder.$subdir,$file_path,$file,$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height); - } catch (Exception $e) { - $src_thumb=$mini_src=$src_thumb_url=""; - } - } - $is_img=true; - //check if is smaller than thumb - list($img_width, $img_height, $img_type, $attr)=getimagesize($file_path); - if($img_width<122 && $img_height<91){ - $src_thumb=$current_path.$rfm_subfolder.$subdir.$file; - $show_original=true; - } - - if($img_width<45 && $img_height<38){ - $mini_src=$current_path.$rfm_subfolder.$subdir.$file; - $mini_src_url= $base_url.$upload_dir.$rfm_subfolder.$subdir.$file; - $show_original_mini=true; - } - } - - $is_icon_thumb=false; - $is_icon_thumb_mini=false; - $no_thumb=false; - if($src_thumb==""){ - $no_thumb=true; - if(file_exists('img/'.$icon_theme.'/'.$extension_lower.".jpg")){ - $src_thumb ='img/'.$icon_theme.'/'.$extension_lower.".jpg"; - }else{ - $src_thumb = "img/".$icon_theme."/default.jpg"; - } - - $src_thumb_url = $base_url . $filemanager_dir . $src_thumb; - - $is_icon_thumb=true; - } - if($mini_src==""){ - $is_icon_thumb_mini=false; - } - - $class_ext=0; - if (in_array($extension_lower, $ext_video)) { - $class_ext = 4; - $is_video=true; - }elseif (in_array($extension_lower, $ext_img)) { - $class_ext = 2; - }elseif (in_array($extension_lower, $ext_music)) { - $class_ext = 5; - $is_audio=true; - }elseif (in_array($extension_lower, $ext_misc)) { - $class_ext = 3; - }else{ - $class_ext = 1; - } - if((!($_GET['type']==1 && !$is_img) && !(($_GET['type']==3 && !$is_video) && ($_GET['type']==3 && !$is_audio))) && $class_ext>0){ - ?> -
  • "> - -
    -
    -
    - - <?php echo $filename." class=" " src=""> -
    -
    -
    -
    ">
    -
    - - - <?php echo $filename." class=" " src=""> - -
    -
    - -
    - -
    -
    -

    "> -

    -
    - - - - -
    -
    -
    -
    -
    -
    - - - - - - - - " - title="" data-url="ajax_calls.php?action=media_preview&title=&file=" - href="javascript:void('');" > - - - - " title="" data-path="" data-thumb=""> - - - " title="" data-confirm="" data-path="" data-thumb=""> - - -
    -
    -
    -
  • -
- - -
-
- - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php deleted file mode 100644 index 5f924283..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php +++ /dev/null @@ -1,280 +0,0 @@ -$path) - { - if ($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - - if (file_exists($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension'])) - { - unlink($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension']); - } - } - } - - if ($fixed_image_creation) - { - foreach($fixed_path_from_filemanager as $k=>$path) - { - if ($path!="" && $path[strlen($path)-1] != "/") $path.="/"; - - $base_dir=$path.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - unlink($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']); - } - } - } - } - break; - case 'delete_folder': - if ($delete_folders){ - if (is_dir($path_thumb)) - { - deleteDir($path_thumb); - } - - if (is_dir($path)) - { - deleteDir($path); - if ($fixed_image_creation) - { - foreach($fixed_path_from_filemanager as $k=>$paths){ - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir=$paths.substr_replace($path, '', 0, strlen($current_path)); - if (is_dir($base_dir)) deleteDir($base_dir); - } - } - } - } - break; - case 'create_folder': - if ($create_folders) - { - create_folder(fix_path($path,$transliteration),fix_path($path_thumb,$transliteration)); - } - break; - case 'rename_folder': - if ($rename_folders){ - $name=fix_filename($name,$transliteration); - $name=str_replace('.','',$name); - - if (!empty($name)){ - if (!rename_folder($path,$name,$transliteration)) die(lang_Rename_existing_folder); - - rename_folder($path_thumb,$name,$transliteration); - if ($fixed_image_creation){ - foreach($fixed_path_from_filemanager as $k=>$paths){ - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir=$paths.substr_replace($path, '', 0, strlen($current_path)); - rename_folder($base_dir,$name,$transliteration); - } - } - } - else { - die(lang_Empty_name); - } - } - break; - case 'rename_file': - if ($rename_files){ - $name=fix_filename($name,$transliteration); - if (!empty($name)) - { - if (!rename_file($path,$name,$transliteration)) die(lang_Rename_existing_file); - - rename_file($path_thumb,$name,$transliteration); - - if ($fixed_image_creation) - { - $info=pathinfo($path); - - foreach($fixed_path_from_filemanager as $k=>$paths) - { - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir = $paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - rename_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k],$transliteration); - } - } - } - } - else { - die(lang_Empty_name); - } - } - break; - case 'duplicate_file': - if ($duplicate_files) - { - $name = fix_filename($name,$transliteration); - if (!empty($name)) - { - if (!duplicate_file($path,$name)) die(lang_Rename_existing_file); - - duplicate_file($path_thumb,$name); - - if ($fixed_image_creation) - { - $info=pathinfo($path); - foreach($fixed_path_from_filemanager as $k=>$paths) - { - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.= "/"; - - $base_dir=$paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - duplicate_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k]); - } - } - } - } - else - { - die(lang_Empty_name); - } - } - break; - case 'paste_clipboard': - if ( ! isset($_SESSION['RF']['clipboard_action'], $_SESSION['RF']['clipboard']['path'], $_SESSION['RF']['clipboard']['path_thumb']) - || $_SESSION['RF']['clipboard_action'] == '' - || $_SESSION['RF']['clipboard']['path'] == '' - || $_SESSION['RF']['clipboard']['path_thumb'] == '') - { - die(); - } - - $action = $_SESSION['RF']['clipboard_action']; - $data = $_SESSION['RF']['clipboard']; - $data['path'] = $current_path.$data['path']; - $pinfo = pathinfo($data['path']); - - // user wants to paste to the same dir. nothing to do here... - if ($pinfo['dirname'] == rtrim($path, '/')) { - die(); - } - - // user wants to paste folder to it's own sub folder.. baaaah. - if (is_dir($data['path']) && strpos($path, $data['path']) !== FALSE){ - die(); - } - - // something terribly gone wrong - if ($action != 'copy' && $action != 'cut'){ - die('no action'); - } - - // check for writability - if (is_really_writable($path) === FALSE || is_really_writable($path_thumb) === FALSE){ - die($path.'--'.$path_thumb.'--'.lang_Dir_No_Write); - } - - // check if server disables copy or rename - if (is_function_callable(($action == 'copy' ? 'copy' : 'rename')) === FALSE){ - die(sprintf(lang_Function_Disabled, ($action == 'copy' ? lcfirst(lang_Copy) : lcfirst(lang_Cut)))); - } - - if ($action == 'copy') - { - rcopy($data['path'], $path); - rcopy($data['path_thumb'], $path_thumb); - } - elseif ($action == 'cut') - { - rrename($data['path'], $path); - rrename($data['path_thumb'], $path_thumb); - - // cleanup - if (is_dir($data['path']) === TRUE){ - rrename_after_cleaner($data['path']); - rrename_after_cleaner($data['path_thumb']); - } - } - - // cleanup - $_SESSION['RF']['clipboard']['path'] = NULL; - $_SESSION['RF']['clipboard']['path_thumb'] = NULL; - $_SESSION['RF']['clipboard_action'] = NULL; - - break; - default: - die('wrong action'); - } -} - -?> \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php deleted file mode 100644 index 5edcf481..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php +++ /dev/null @@ -1,30 +0,0 @@ - \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png deleted file mode 100644 index 84a0447b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png deleted file mode 100644 index 4afd1bd0..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png deleted file mode 100644 index f037a6f3..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png deleted file mode 100644 index b2abe89f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/date.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/date.png deleted file mode 100644 index 85482c9e..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/date.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png deleted file mode 100644 index cb46270f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png deleted file mode 100644 index 369fc46e..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/down.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/down.png deleted file mode 100644 index f975a7ac..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/down.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/download.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/download.png deleted file mode 100644 index bb054784..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/download.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png deleted file mode 100644 index 71bfac6f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png deleted file mode 100644 index 658ef623..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings-white.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings-white.png deleted file mode 100644 index d62c3e7f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings-white.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings.png deleted file mode 100644 index 4fe3f723..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg deleted file mode 100644 index 0b7fcdd8..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg deleted file mode 100644 index d21abb8c..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ade.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ade.jpg deleted file mode 100644 index 371e0dd8..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ade.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/adp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/adp.jpg deleted file mode 100644 index 371e0dd8..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/adp.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ai.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ai.jpg deleted file mode 100644 index 19447484..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ai.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg deleted file mode 100644 index 774905c6..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg deleted file mode 100644 index 2c57cb7f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/bmp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/bmp.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/bmp.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/css.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/css.jpg deleted file mode 100644 index e1673b07..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/css.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/csv.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/csv.jpg deleted file mode 100644 index 0cf4076c..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/csv.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/default.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/default.jpg deleted file mode 100644 index 5d1f4235..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/default.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/dmg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/dmg.jpg deleted file mode 100644 index 1be5ebba..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/dmg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg deleted file mode 100644 index d9ebcf8a..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg deleted file mode 100644 index d9ebcf8a..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico deleted file mode 100644 index 73837074..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg deleted file mode 100644 index f7033678..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/flv.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/flv.jpg deleted file mode 100644 index 6e5f8598..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/flv.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.jpg deleted file mode 100644 index d7c040dd..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.png deleted file mode 100644 index 1fa946e2..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.jpg deleted file mode 100644 index eeffc572..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.png deleted file mode 100644 index de3c8a65..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gz.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gz.jpg deleted file mode 100644 index 950cad38..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gz.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg deleted file mode 100644 index b915c599..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/iso.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/iso.jpg deleted file mode 100644 index 7617f594..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/iso.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpeg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpeg.jpg deleted file mode 100644 index fe3b5eeb..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpeg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/log.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/log.jpg deleted file mode 100644 index 333a8d9b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/log.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg deleted file mode 100644 index 6be612be..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg deleted file mode 100644 index d21abb8c..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mid.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mid.jpg deleted file mode 100644 index ec365f14..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mid.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mov.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mov.jpg deleted file mode 100644 index 25db2e93..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mov.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg deleted file mode 100644 index 2123bf12..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg deleted file mode 100644 index ccb45d80..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg deleted file mode 100644 index 7a861479..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg deleted file mode 100644 index 0f1901e7..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg deleted file mode 100644 index bf3af96f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg deleted file mode 100644 index bf3af96f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg deleted file mode 100644 index 31050400..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg deleted file mode 100644 index 2c8f4b62..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otp.jpg deleted file mode 100644 index 72ae7531..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otp.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg deleted file mode 100644 index 2aa417eb..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ppt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ppt.jpg deleted file mode 100644 index 967d2bb1..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ppt.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg deleted file mode 100644 index 4a0ad1a1..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/psd.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/psd.jpg deleted file mode 100644 index 9365ac49..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/psd.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg deleted file mode 100644 index 950cad38..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg deleted file mode 100644 index d9ebcf8a..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg deleted file mode 100644 index c0556dec..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/svg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/svg.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/svg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tar.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tar.jpg deleted file mode 100644 index 15ea7810..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tar.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tiff.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tiff.jpg deleted file mode 100644 index 679b5226..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tiff.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg deleted file mode 100644 index 333a8d9b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg deleted file mode 100644 index 31050400..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg deleted file mode 100644 index 2c57cb7f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wma.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wma.jpg deleted file mode 100644 index 2c57cb7f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wma.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xhtml.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xhtml.jpg deleted file mode 100644 index 466d818b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xhtml.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg deleted file mode 100644 index dc2ab5e7..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg deleted file mode 100644 index c8ac78f0..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg deleted file mode 100644 index aa8c4438..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/zip.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/zip.jpg deleted file mode 100644 index 950cad38..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/zip.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg deleted file mode 100644 index c89b43ca..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/accdb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/accdb.jpg deleted file mode 100644 index 3e670adc..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/accdb.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ade.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ade.jpg deleted file mode 100644 index b07e8114..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ade.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg deleted file mode 100644 index b07e8114..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg deleted file mode 100644 index 719a029f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg deleted file mode 100644 index 290afdda..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/avi.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/avi.jpg deleted file mode 100644 index 128eafd8..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/avi.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg deleted file mode 100644 index 0246bfd0..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg deleted file mode 100644 index c7d3aef7..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/default.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/default.jpg deleted file mode 100644 index 433adcfb..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/default.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg deleted file mode 100644 index 43179464..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/doc.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/doc.jpg deleted file mode 100644 index abb65ed3..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/doc.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/docx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/docx.jpg deleted file mode 100644 index 08b04b82..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/docx.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/favicon.ico b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/favicon.ico deleted file mode 100644 index 73837074..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/favicon.ico and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg deleted file mode 100644 index e2706ec7..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/flv.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/flv.jpg deleted file mode 100644 index b35496b3..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/flv.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.jpg deleted file mode 100644 index 589791c5..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png deleted file mode 100644 index 7fad79ad..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.jpg deleted file mode 100644 index ddacf761..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png deleted file mode 100644 index de3c8a65..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg deleted file mode 100644 index bd30b1cd..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg deleted file mode 100644 index 9d7c99aa..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg deleted file mode 100644 index afb20c1e..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg deleted file mode 100644 index 2df9299b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpg.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg deleted file mode 100644 index 5a0a8520..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/m4a.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/m4a.jpg deleted file mode 100644 index 4eb8340b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/m4a.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mdb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mdb.jpg deleted file mode 100644 index 3e670adc..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mdb.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mid.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mid.jpg deleted file mode 100644 index 40516d6e..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mid.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg deleted file mode 100644 index 0aa7a8a9..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp3.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp3.jpg deleted file mode 100644 index fd661490..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp3.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp4.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp4.jpg deleted file mode 100644 index 0b045edf..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp4.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpeg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpeg.jpg deleted file mode 100644 index 37293c14..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpeg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg deleted file mode 100644 index 6ca376a0..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg deleted file mode 100644 index 3550401b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg deleted file mode 100644 index 3550401b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg deleted file mode 100644 index e93be746..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otg.jpg deleted file mode 100644 index 4c596334..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg deleted file mode 100644 index 9cc95b3b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ots.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ots.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ots.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg deleted file mode 100644 index 44987838..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/png.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/png.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/png.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg deleted file mode 100644 index d0d4e281..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg deleted file mode 100644 index 066db3fe..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg deleted file mode 100644 index 37e2f1a9..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rar.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rar.jpg deleted file mode 100644 index d4878825..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rar.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg deleted file mode 100644 index abb65ed3..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/sql.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/sql.jpg deleted file mode 100644 index 40128438..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/sql.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg deleted file mode 100644 index e875b26e..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg deleted file mode 100644 index 6648ebfe..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg deleted file mode 100644 index 5a0a8520..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wav.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wav.jpg deleted file mode 100644 index e93be746..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wav.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/webm.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/webm.jpg deleted file mode 100644 index dab5433b..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/webm.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg deleted file mode 100644 index 128eafd8..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg deleted file mode 100644 index 5c315043..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xls.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xls.jpg deleted file mode 100644 index 41fe930f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xls.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg deleted file mode 100644 index ed4cbbef..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xml.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xml.jpg deleted file mode 100644 index 2301744c..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xml.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg deleted file mode 100644 index bd30b1cd..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png deleted file mode 100644 index dfb3971d..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/label.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/label.png deleted file mode 100644 index f5b5b200..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/label.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/loading.gif b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/loading.gif deleted file mode 100644 index 6fba7760..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/loading.gif and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/logo.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/logo.png deleted file mode 100644 index 2a9a0dea..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/logo.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_add.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_add.png deleted file mode 100644 index a70de096..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_add.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_copy.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_copy.png deleted file mode 100644 index a9f31a27..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_copy.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_delete.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_delete.png deleted file mode 100644 index 7bb3d956..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_delete.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_edit.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_edit.png deleted file mode 100644 index b93e7760..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_edit.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_paste.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_paste.png deleted file mode 100644 index 5b2cbb3f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_paste.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/preview.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/preview.png deleted file mode 100644 index 07af0803..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/preview.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/processing.gif b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/processing.gif deleted file mode 100644 index 7c99504e..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/processing.gif and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png deleted file mode 100644 index 82d9f13f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png deleted file mode 100644 index abbc7448..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png deleted file mode 100644 index d741e10f..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_en_EN.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_en_EN.png deleted file mode 100644 index e877eea6..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_en_EN.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_hu_HU.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_hu_HU.png deleted file mode 100644 index 97e2c550..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_hu_HU.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_en_EN.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_en_EN.png deleted file mode 100644 index 9f213145..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_en_EN.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_hu_HU.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_hu_HU.png deleted file mode 100644 index b2ec8ee9..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_hu_HU.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/storing_animation.gif b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/storing_animation.gif deleted file mode 100644 index eca3a53c..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/storing_animation.gif and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png deleted file mode 100644 index d7b3925c..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/url.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/url.png deleted file mode 100644 index e0db5519..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/url.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/zip.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/zip.png deleted file mode 100644 index 95355ce7..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/img/zip.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php deleted file mode 100644 index 81e9bcd2..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php +++ /dev/null @@ -1,3320 +0,0 @@ - resizeImage(150, 100, 0); - # $magicianObj -> saveImage('images/car_small.jpg', 100); - # - # - See end of doc for more examples - - # - # Supported file types include: jpg, png, gif, bmp, psd (read) - # - # - # - # The following functions are taken from phpThumb() [available from - # http://phpthumb.sourceforge.net], and are used with written permission - # from James Heinrich. - # - GD2BMPstring - # - GetPixelColor - # - LittleEndian2String - # - # The following functions are from Marc Hibbins and are used with written - # permission (are also under the Attribution-ShareAlike - # [http://creativecommons.org/licenses/by-sa/3.0/] license. - # - - # - # PhpPsdReader is used with written permission from Tim de Koning. - # [http://www.kingsquare.nl/phppsdreader] - # - # - # - # Modificatoin history - # Date Initials Ver Description - # 10-05-11 J.C.O 0.0 Initial build - # 01-06-11 J.C.O 0.1.1 * Added reflections - # * Added Rounded corners - # * You can now use PNG interlacing - # * Added shadow - # * Added caption box - # * Added vintage filter - # * Added dynamic image resizing (resize on the fly) - # * minor bug fixes - # 05-06-11 J.C.O 0.1.1.1 * Fixed undefined variables - # 17-06-11 J.C.O 0.1.2 * Added image_batch_class.php class - # * Minor bug fixes - # 26-07-11 J.C.O 0.1.4 * Added support for external images - # * Can now set the crop poisition - # 03-08-11 J.C.O 0.1.5 * Added reset() method to reset resource to - # original input file. - # * Added method addTextToCaptionBox() to - # simplify adding text to a caption box. - # * Added experimental writeIPTC. (not finished) - # * Added experimental readIPTC. (not finished) - # 11-08-11 J.C.O * Added initial border presets. - # 30-08-11 J.C.O * Added 'auto' crop option to crop portrait - # images near the top. - # 08-09-11 J.C.O * Added cropImage() method to allow standalone - # cropping. - # 17-09-11 J.C.O * Added setCropFromTop() set method - set the - # percentage to crop from the top when using - # crop 'auto' option. - # * Added setTransparency() set method - allows you - # to turn transparency off (like when saving - # as a jpg). - # * Added setFillColor() set method - set the - # background color to use instead of transparency. - # 05-11-11 J.C.O 0.1.5.1 * Fixed interlacing option - # 0-07-12 J.C.O 1.0 - # - # Known issues & Limitations: - # ------------------------------- - # Not so much an issue, the image is destroyed on the deconstruct rather than - # when we have finished with it. The reason for this is that we don't know - # when we're finished with it as you can both save the image and display - # it directly to the screen (imagedestroy($this->imageResized)) - # - # Opening BMP files is slow. A test with 884 bmp files processed in a loop - # takes forever - over 5 min. This test inlcuded opening the file, then - # getting and displaying its width and height. - # - # $forceStretch: - # ------------------------------- - # On by default. - # $forceStretch can be disabled by calling method setForceStretch with false - # parameter. If disabled, if an images original size is smaller than the size - # specified by the user, the original size will be used. This is useful when - # dealing with small images. - # - # If enabled, images smaller than the size specified will be stretched to - # that size. - # - # Tips: - # ------------------------------- - # * If you're resizing a transparent png and saving it as a jpg, set - # $keepTransparency to false with: $magicianObj->setTransparency(false); - # - # FEATURES: - # * EASY TO USE - # * BMP SUPPORT (read & write) - # * PSD (photoshop) support (read) - # * RESIZE IMAGES - # - Preserve transparency (png, gif) - # - Apply sharpening (jpg) (requires PHP >= 5.1.0) - # - Set image quality (jpg, png) - # - Resize modes: - # - exact size - # - resize by width (auto height) - # - resize by height (auto width) - # - auto (automatically determine the best of the above modes to use) - # - crop - resize as best as it can then crop the rest - # - Force stretching of smaller images (upscale) - # * APPLY FILTERS - # - Convert to grey scale - # - Convert to black and white - # - Convert to sepia - # - Convert to negative - # * ROTATE IMAGES - # - Rotate using predefined "left", "right", or "180"; or any custom degree amount - # * EXTRACT EXIF DATA (requires exif module) - # - make - # - model - # - date - # - exposure - # - aperture - # - f-stop - # - iso - # - focal length - # - exposure program - # - metering mode - # - flash status - # - creator - # - copyright - # * ADD WATERMARK - # - Specify exact x, y placement - # - Or, specify using one of the 9 pre-defined placements such as "tl" - # (for top left), "m" (for middle), "br" (for bottom right) - # - also specify padding from edge amount (optional). - # - Set opacity of watermark (png). - # * ADD BORDER - # * USE HEX WHEN SPECIFYING COLORS (eg: #ffffff) - # * SAVE IMAGE OR OUTPUT TO SCREEN - # - # - # ========================================================================# - - -class imageLib -{ - - private $fileName; - private $image; - protected $imageResized; - private $widthOriginal; # Always be the original width - private $heightOriginal; - private $width; # Current width (width after resize) - private $height; - private $imageSize; - private $fileExtension; - - private $debug = true; - private $errorArray = array(); - - private $forceStretch = true; - private $aggresiveSharpening = false; - - private $transparentArray = array('.png', '.gif'); - private $keepTransparency = true; - private $fillColorArray = array('r'=>255, 'g'=>255, 'b'=>255); - - private $sharpenArray = array('jpg'); - - private $psdReaderPath; - private $filterOverlayPath; - - private $isInterlace; - - private $captionBoxPositionArray = array(); - - private $fontDir = 'fonts'; - - private $cropFromTopPercent = 10; - - -## -------------------------------------------------------- - - function __construct($fileName) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Constructor - # Param in: $fileName: File name and path. - # Param out: n/a - # Reference: - # Notes: - # - { - if (!$this->testGDInstalled()) { if ($this->debug) { throw new Exception('The GD Library is not installed.'); }else{ throw new Exception(); }}; - - $this->initialise(); - - // *** Save the image file name. Only store this incase you want to display it - $this->fileName = $fileName; - $this->fileExtension = fix_strtolower(strrchr($fileName, '.')); - - // *** Open up the file - $this->image = $this->openImage($fileName); - - - // *** Assign here so we don't modify the original - $this->imageResized = $this->image; - - // *** If file is an image - if ($this->testIsImage($this->image)) - { - // *** Get width and height - $this->width = imagesx($this->image); - $this->widthOriginal = imagesx($this->image); - $this->height = imagesy($this->image); - $this->heightOriginal = imagesy($this->image); - - - /* Added 15-09-08 - * Get the filesize using this build in method. - * Stores an array of size - * - * $this->imageSize[1] = width - * $this->imageSize[2] = height - * $this->imageSize[3] = width x height - * - */ - $this->imageSize = getimagesize($this->fileName); - - } else { - $this->errorArray[] = 'File is not an image'; - } - } - -## -------------------------------------------------------- - - private function initialise () { - - $this->psdReaderPath = dirname(__FILE__) . '/classPhpPsdReader.php'; - $this->filterOverlayPath = dirname(__FILE__) . '/filters'; - - // *** Set if image should be interlaced or not. - $this->isInterlace = false; - } - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Resize -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - - public function resizeImage($newWidth, $newHeight, $option = 0, $sharpen = false, $autoRotate = false) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Resizes the image - # Param in: $newWidth: - # $newHeight: - # $option: 0 / exact = defined size; - # 1 / portrait = keep aspect set height; - # 2 / landscape = keep aspect set width; - # 3 / auto = auto; - # 4 / crop= resize and crop; - # - # $option can also be an array containing options for - # cropping. E.G., array('crop', 'r') - # - # This array only applies to 'crop' and the 'r' refers to - # "crop right". Other value include; tl, t, tr, l, m (default), - # r, bl, b, br, or you can specify your own co-ords (which - # isn't recommended. - # - # $sharpen: true: sharpen (jpg only); - # false: don't sharpen - # Param out: n/a - # Reference: - # Notes: To clarify the $option input: - # 0 = The exact height and width dimensions you set. - # 1 = Whatever height is passed in will be the height that - # is set. The width will be calculated and set automatically - # to a the value that keeps the original aspect ratio. - # 2 = The same but based on the width. We try make the image the - # biggest size we can while stil fitting inside the box size - # 3 = Depending whether the image is landscape or portrait, this - # will automatically determine whether to resize via - # dimension 1,2 or 0 - # 4 = Will resize and then crop the image for best fit - # - # forceStretch can be applied to options 1,2,3 and 4 - # - { - - // *** We can pass in an array of options to change the crop position - $cropPos = 'm'; - if (is_array($option) && fix_strtolower($option[0]) == 'crop') { - $cropPos = $option[1]; # get the crop option - } else if (strpos($option, '-') !== false) { - // *** Or pass in a hyphen seperated option - $optionPiecesArray = explode('-', $option); - $cropPos = end($optionPiecesArray); - } - - // *** Check the option is valid - $option = $this->prepOption($option); - - // *** Make sure the file passed in is valid - if (!$this->image) { if ($this->debug) { throw new Exception('file ' . $this->getFileName() .' is missing or invalid'); }else{ throw new Exception(); }}; - - // *** Get optimal width and height - based on $option - $dimensionsArray = $this->getDimensions($newWidth, $newHeight, $option); - - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - - // *** Resample - create image canvas of x, y size - $this->imageResized = imagecreatetruecolor($optimalWidth, $optimalHeight); - $this->keepTransparancy($optimalWidth, $optimalHeight, $this->imageResized); - imagecopyresampled($this->imageResized, $this->image, 0, 0, 0, 0, $optimalWidth, $optimalHeight, $this->width, $this->height); - - - // *** If '4', then crop too - if ($option == 4 || $option == 'crop') { - - if (($optimalWidth >= $newWidth && $optimalHeight >= $newHeight)) { - $this->crop($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos); - } - } - - // *** If Rotate. - if ($autoRotate) { - - $exifData = $this->getExif(false); - if (count($exifData) > 0) { - - switch($exifData['orientation']) { - case 8: - $this->imageResized = imagerotate($this->imageResized,90,0); - break; - case 3: - $this->imageResized = imagerotate($this->imageResized,180,0); - break; - case 6: - $this->imageResized = imagerotate($this->imageResized,-90,0); - break; - } - } - } - - // *** Sharpen image (if jpg and the user wishes to do so) - if ($sharpen && in_array($this->fileExtension, $this->sharpenArray)) { - - // *** Sharpen - $this->sharpen(); - } - } - -## -------------------------------------------------------- - - public function cropImage($newWidth, $newHeight, $cropPos = 'm') - # Author: Jarrod Oberto - # Date: 08-09-11 - # Purpose: Crops the image - # Param in: $newWidth: crop with - # $newHeight: crop height - # $cropPos: Can be any of the following: - # tl, t, tr, l, m, r, bl, b, br, auto - # Or: - # a custom position such as '30x50' - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Make sure the file passed in is valid - if (!$this->image) { if ($this->debug) { throw new Exception('file ' . $this->getFileName() .' is missing or invalid'); }else{ throw new Exception(); }}; - - $this->imageResized = $this->image; - $this->crop($this->width, $this->height, $newWidth, $newHeight, $cropPos); - - } - -## -------------------------------------------------------- - - private function keepTransparancy($width, $height, $im) - # Author: Jarrod Oberto - # Date: 08-04-11 - # Purpose: Keep transparency for png and gif image - # Param in: - # Param out: n/a - # Reference: - # Notes: - # - { - // *** If PNG, perform some transparency retention actions (gif untested) - if (in_array($this->fileExtension, $this->transparentArray) && $this->keepTransparency) { - imagealphablending($im, false); - imagesavealpha($im, true); - $transparent = imagecolorallocatealpha($im, 255, 255, 255, 127); - imagefilledrectangle($im, 0, 0, $width, $height, $transparent); - } else { - $color = imagecolorallocate($im, $this->fillColorArray['r'], $this->fillColorArray['g'], $this->fillColorArray['b']); - imagefilledrectangle($im, 0, 0, $width, $height, $color); - } - } - -## -------------------------------------------------------- - - private function crop($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos) - # Author: Jarrod Oberto - # Date: 15-09-08 - # Purpose: Crops the image - # Param in: $newWidth: - # $newHeight: - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Get cropping co-ordinates - $cropArray = $this->getCropPlacing($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos); - $cropStartX = $cropArray['x']; - $cropStartY = $cropArray['y']; - - // *** Crop this bad boy - $crop = imagecreatetruecolor($newWidth , $newHeight); - $this->keepTransparancy($optimalWidth, $optimalHeight, $crop); - imagecopyresampled($crop, $this->imageResized, 0, 0, $cropStartX, $cropStartY, $newWidth, $newHeight , $newWidth, $newHeight); - - $this->imageResized = $crop; - - // *** Set new width and height to our variables - $this->width = $newWidth; - $this->height = $newHeight; - - } - -## -------------------------------------------------------- - - private function getCropPlacing($optimalWidth, $optimalHeight, $newWidth, $newHeight, $pos='m') - # - # Author: Jarrod Oberto - # Date: July 11 - # Purpose: Set the cropping area. - # Params in: - # Params out: (array) the crop x and y co-ordinates. - # Notes: When specifying the exact pixel crop position (eg 10x15), be - # very careful as it's easy to crop out of the image leaving - # black borders. - # - { - $pos = fix_strtolower($pos); - - // *** If co-ords have been entered - if (strstr($pos, 'x')) { - $pos = str_replace(' ', '', $pos); - - $xyArray = explode('x', $pos); - list($cropStartX, $cropStartY) = $xyArray; - - } else { - - switch ($pos) { - case 'tl': - $cropStartX = 0; - $cropStartY = 0; - break; - - case 't': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = 0; - break; - - case 'tr': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = 0; - break; - - case 'l': - $cropStartX = 0; - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'm': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'r': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'bl': - $cropStartX = 0; - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'b': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'br': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'auto': - // *** If image is a portrait crop from top, not center. v1.5 - if ($optimalHeight > $optimalWidth) { - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ($this->cropFromTopPercent /100) * $optimalHeight; - } else { - - // *** Else crop from the center - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - } - break; - - default: - // *** Default to center - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - } - } - - return array('x' => $cropStartX, 'y' => $cropStartY); - } - -## -------------------------------------------------------- - - private function getDimensions($newWidth, $newHeight, $option) - # Author: Jarrod Oberto - # Date: 17-11-09 - # Purpose: Get new image dimensions based on user specificaions - # Param in: $newWidth: - # $newHeight: - # Param out: Array of new width and height values - # Reference: - # Notes: If $option = 3 then this function is call recursivly - # - # To clarify the $option input: - # 0 = The exact height and width dimensions you set. - # 1 = Whatever height is passed in will be the height that - # is set. The width will be calculated and set automatically - # to a the value that keeps the original aspect ratio. - # 2 = The same but based on the width. - # 3 = Depending whether the image is landscape or portrait, this - # will automatically determine whether to resize via - # dimension 1,2 or 0. - # 4 = Resize the image as much as possible, then crop the - # remainder. - { - - switch (strval($option)) - { - case '0': - case 'exact': - $optimalWidth = $newWidth; - $optimalHeight= $newHeight; - break; - case '1': - case 'portrait': - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '2': - case 'landscape': - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '3': - case 'auto': - $dimensionsArray = $this->getSizeByAuto($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '4': - case 'crop': - $dimensionsArray = $this->getOptimalCrop($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - } - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function getSizeByFixedHeight($newWidth, $newHeight) - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual height is less than target height - if ($this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $ratio = $this->width / $this->height; - - $newWidth = $newHeight * $ratio; - - //return $newWidth; - return array('optimalWidth' => $newWidth, 'optimalHeight' => $newHeight); - } - -## -------------------------------------------------------- - - private function getSizeByFixedWidth($newWidth, $newHeight) - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual width is less than target width - if ($this->width < $newWidth) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $ratio = $this->height / $this->width; - - $newHeight = $newWidth * $ratio; - - //return $newHeight; - return array('optimalWidth' => $newWidth, 'optimalHeight' => $newHeight); - } - -## -------------------------------------------------------- - - private function getSizeByAuto($newWidth, $newHeight) - # Author: Jarrod Oberto - # Date: 19-08-08 - # Purpose: Depending on the height, choose to resize by 0, 1, or 2 - # Param in: The new height and new width - # Notes: - # - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual size is less than target size - if ($this->width < $newWidth && $this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - if ($this->height < $this->width) - // *** Image to be resized is wider (landscape) - { - //$optimalWidth = $newWidth; - //$optimalHeight= $this->getSizeByFixedWidth($newWidth); - - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } - elseif ($this->height > $this->width) - // *** Image to be resized is taller (portrait) - { - //$optimalWidth = $this->getSizeByFixedHeight($newHeight); - //$optimalHeight= $newHeight; - - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } - else - // *** Image to be resizerd is a square - { - - if ($newHeight < $newWidth) { - //$optimalWidth = $newWidth; - //$optimalHeight= $this->getSizeByFixedWidth($newWidth); - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } else if ($newHeight > $newWidth) { - //$optimalWidth = $this->getSizeByFixedHeight($newHeight); - //$optimalHeight= $newHeight; - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } else { - // *** Sqaure being resized to a square - $optimalWidth = $newWidth; - $optimalHeight= $newHeight; - } - } - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function getOptimalCrop($newWidth, $newHeight) - # Author: Jarrod Oberto - # Date: 17-11-09 - # Purpose: Get optimal crop dimensions - # Param in: width and height as requested by user (fig 3) - # Param out: Array of optimal width and height (fig 2) - # Reference: - # Notes: The optimal width and height return are not the same as the - # same as the width and height passed in. For example: - # - # - # |-----------------| |------------| |-------| - # | | => |**| |**| => | | - # | | |**| |**| | | - # | | |------------| |-------| - # |-----------------| - # original optimal crop - # size size size - # Fig 1 2 3 - # - # 300 x 250 150 x 125 150 x 100 - # - # The optimal size is the smallest size (that is closest to the crop size) - # while retaining proportion/ratio. - # - # The crop size is the optimal size that has been cropped on one axis to - # make the image the exact size specified by the user. - # - # * represent cropped area - # - { - - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual size is less than target size - if ($this->width < $newWidth && $this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $heightRatio = $this->height / $newHeight; - $widthRatio = $this->width / $newWidth; - - if ($heightRatio < $widthRatio) { - $optimalRatio = $heightRatio; - } else { - $optimalRatio = $widthRatio; - } - - $optimalHeight = round( $this->height / $optimalRatio ); - $optimalWidth = round( $this->width / $optimalRatio ); - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function sharpen() - # Author: Jarrod Oberto - # Date: 08 04 2011 - # Purpose: Sharpen image - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # Credit: Incorporates Joe Lencioni (August 6, 2008) code - { - - if (version_compare(PHP_VERSION, '5.1.0') >= 0) { - - // *** - if ($this->aggresiveSharpening) { # A more aggressive sharpening solution - - $sharpenMatrix = array( array( -1, -1, -1 ), - array( -1, 16, -1 ), - array( -1, -1, -1 ) ); - $divisor = 8; - $offset = 0; - - imageconvolution($this->imageResized, $sharpenMatrix, $divisor, $offset); - } - else # More subtle and personally more desirable - { - $sharpness = $this->findSharp($this->widthOriginal, $this->width); - - $sharpenMatrix = array( - array(-1, -2, -1), - array(-2, $sharpness + 12, -2), //Lessen the effect of a filter by increasing the value in the center cell - array(-1, -2, -1) - ); - $divisor = $sharpness; // adjusts brightness - $offset = 0; - imageconvolution($this->imageResized, $sharpenMatrix, $divisor, $offset); - } - } - else - { - if ($this->debug) { throw new Exception('Sharpening required PHP 5.1.0 or greater.'); } - } - } - - ## -------------------------------------------------------- - - private function sharpen2($level) - { - $sharpenMatrix = array( - array($level, $level, $level), - array($level, (8*$level)+1, $level), //Lessen the effect of a filter by increasing the value in the center cell - array($level, $level, $level) - ); - - } - -## -------------------------------------------------------- - - private function findSharp($orig, $final) - # Author: Ryan Rud (http://adryrun.com) - # Purpose: Find optimal sharpness - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - $final = $final * (750.0 / $orig); - $a = 52; - $b = -0.27810650887573124; - $c = .00047337278106508946; - - $result = $a + $b * $final + $c * $final * $final; - - return max(round($result), 0); - } - -## -------------------------------------------------------- - - private function prepOption($option) - # Author: Jarrod Oberto - # Purpose: Prep option like change the passed in option to lowercase - # Param in: (str/int) $option: eg. 'exact', 'crop'. 0, 4 - # Param out: lowercase string - # Reference: - # Notes: - # - { - if (is_array($option)) { - if (fix_strtolower($option[0]) == 'crop' && count($option) == 2) { - return 'crop'; - } else { - throw new Exception('Crop resize option array is badly formatted.'); - } - } else if (strpos($option, 'crop') !== false) { - return 'crop'; - } - - if (is_string($option)) { - return fix_strtolower($option); - } - - return $option; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Presets -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - -# -# Preset are pre-defined templates you can apply to your image. -# -# These are inteded to be applied to thumbnail images. -# - - - public function borderPreset($preset) - { - switch ($preset) - { - - case 'simple': - $this->addBorder(7, '#fff'); - $this->addBorder(6, '#f2f1f0'); - $this->addBorder(2, '#fff'); - $this->addBorder(1, '#ccc'); - break; - default: - break; - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Draw border -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addBorder($thickness = 1, $rgbArray = array(255, 255, 255)) - # Author: Jarrod Oberto - # Date: 05-05-11 - # Purpose: Add a border to the image - # Param in: - # Param out: - # Reference: - # Notes: This border is added to the INSIDE of the image - # - { - if ($this->imageResized) { - - $rgbArray = $this->formatColor($rgbArray); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - - $x1 = 0; - $y1 = 0; - $x2 = ImageSX($this->imageResized) - 1; - $y2 = ImageSY($this->imageResized) - 1; - - $rgbArray = ImageColorAllocate($this->imageResized, $r, $g, $b); - - - for($i = 0; $i < $thickness; $i++) { - ImageRectangle($this->imageResized, $x1++, $y1++, $x2--, $y2--, $rgbArray); - } - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Gray Scale -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function greyScale() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image greyscale - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - } - - } - - ## -------------------------------------------------------- - - public function greyScaleEnhanced() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image greyscale - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -15); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, 2); - $this->sharpen($this->width); - } - } - - ## -------------------------------------------------------- - - public function greyScaleDramatic() - # Alias of gd_filter_monopin - { - $this->gd_filter_monopin(); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Black 'n White -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function blackAndWhite() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image black and white - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -1000); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Negative -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function negative() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image negative - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - - imagefilter($this->imageResized, IMG_FILTER_NEGATE); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Sepia -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function sepia() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image sepia - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, -10); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -20); - imagefilter($this->imageResized, IMG_FILTER_COLORIZE, 60, 30, -15); - } - } - - ## -------------------------------------------------------- - - public function sepia2() - - { - if ($this->imageResized) { - - $total = imagecolorstotal( $this->imageResized ); - for ( $i = 0; $i < $total; $i++ ) { - $index = imagecolorsforindex( $this->imageResized, $i ); - $red = ( $index["red"] * 0.393 + $index["green"] * 0.769 + $index["blue"] * 0.189 ) / 1.351; - $green = ( $index["red"] * 0.349 + $index["green"] * 0.686 + $index["blue"] * 0.168 ) / 1.203; - $blue = ( $index["red"] * 0.272 + $index["green"] * 0.534 + $index["blue"] * 0.131 ) / 2.140; - imagecolorset( $this->imageResized, $i, $red, $green, $blue ); - } - - - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Vintage -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function vintage() - # Alias of gd_filter_monopin - { - $this->gd_filter_vintage(); - } - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Presets By Marc Hibbins -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - - /** Apply 'Monopin' preset */ - public function gd_filter_monopin() - { - - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, -15); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -15); - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'vignette', 100); - } - } - - ## -------------------------------------------------------- - - public function gd_filter_vintage() - { - if ($this->imageResized) { - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'vignette', 45); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, 20); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -35); - imagefilter($this->imageResized, IMG_FILTER_COLORIZE, 60, -10, 35); - imagefilter($this->imageResized, IMG_FILTER_SMOOTH, 7); - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'scratch', 10); - } - } - - ## -------------------------------------------------------- - - /** Apply a PNG overlay */ - private function gd_apply_overlay($im, $type, $amount) - # - # Original Author: Marc Hibbins - # License: Attribution-ShareAlike 3.0 - # Purpose: - # Params in: - # Params out: - # Notes: - # - { - $width = imagesx($im); - $height = imagesy($im); - $filter = imagecreatetruecolor($width, $height); - - imagealphablending($filter, false); - imagesavealpha($filter, true); - - $transparent = imagecolorallocatealpha($filter, 255, 255, 255, 127); - imagefilledrectangle($filter, 0, 0, $width, $height, $transparent); - - // *** Resize overlay - $overlay = $this->filterOverlayPath . '/' . $type . '.png'; - $png = imagecreatefrompng($overlay); - imagecopyresampled($filter, $png, 0, 0, 0, 0, $width, $height, imagesx($png), imagesy($png)); - - $comp = imagecreatetruecolor($width, $height); - imagecopy($comp, $im, 0, 0, 0, 0, $width, $height); - imagecopy($comp, $filter, 0, 0, 0, 0, $width, $height); - imagecopymerge($im, $comp, 0, 0, 0, 0, $width, $height, $amount); - - imagedestroy($comp); - return $im; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Colorise -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function image_colorize($rgb) { - imageTrueColorToPalette($this->imageResized,true,256); - $numColors = imageColorsTotal($this->imageResized); - - for ($x = 0; $x < $numColors; $x++) { - list($r,$g,$b) = array_values(imageColorsForIndex($this->imageResized,$x)); - - // calculate grayscale in percent - $grayscale = ($r + $g + $b) / 3 / 0xff; - - imageColorSet($this->imageResized,$x, - $grayscale * $rgb[0], - $grayscale * $rgb[1], - $grayscale * $rgb[2] - ); - - } - - return true; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Reflection -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addReflection($reflectionHeight = 50, $startingTransparency = 30, $inside = false, $bgColor = '#fff', $stretch=false, $divider = 0) - { - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - $im = $this->imageResized; - $li = imagecreatetruecolor($this->width, 1); - - $bgc = imagecolorallocate($li, $r, $g, $b); - imagefilledrectangle($li, 0, 0, $this->width, 1, $bgc); - - $bg = imagecreatetruecolor($this->width, $reflectionHeight); - $wh = imagecolorallocate($im, 255, 255, 255); - - $im = imagerotate($im, -180, $wh); - imagecopyresampled($bg, $im, 0, 0, 0, 0, $this->width, $this->height, $this->width, $this->height); - - $im = $bg; - - $bg = imagecreatetruecolor($this->width, $reflectionHeight); - - for ($x = 0; $x < $this->width; $x++) { - imagecopy($bg, $im, $x, 0, $this->width-$x -1, 0, 1, $reflectionHeight); - } - $im = $bg; - - $transaprencyAmount = $this->invertTransparency($startingTransparency, 100); - - - // *** Fade - if ($stretch) { - $step = 100/($reflectionHeight + $startingTransparency); - } else{ - $step = 100/$reflectionHeight; - } - for($i=0; $i<=$reflectionHeight; $i++){ - - if($startingTransparency>100) $startingTransparency = 100; - if($startingTransparency< 1) $startingTransparency = 1; - imagecopymerge($bg, $li, 0, $i, 0, 0, $this->width, 1, $startingTransparency); - $startingTransparency+=$step; - } - - // *** Apply fade - imagecopymerge($im, $li, 0, 0, 0, 0, $this->width, $divider, 100); // Divider - - - // *** width, height of reflection. - $x = imagesx($im); - $y = imagesy($im); - - - // *** Determines if the reflection should be displayed inside or outside the image - if ($inside) { - - // Create new blank image with sizes. - $final = imagecreatetruecolor($this->width, $this->height); - - imagecopymerge ($final, $this->imageResized, 0, 0, 0, $reflectionHeight, $this->width, $this->height - $reflectionHeight, 100); - imagecopymerge ($final, $im, 0, $this->height - $reflectionHeight, 0, 0, $x, $y, 100); - - } else { - - // Create new blank image with sizes. - $final = imagecreatetruecolor($this->width, $this->height + $y); - - imagecopymerge ($final, $this->imageResized, 0, 0, 0, 0, $this->width, $this->height, 100); - imagecopymerge ($final, $im, 0, $this->height, 0, 0, $x, $y, 100); - } - - $this->imageResized = $final; - - imagedestroy($li); - imagedestroy($im); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Rotate -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function rotate($value = 90, $bgColor = 'transparent') - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Rotate image - # Param in: (mixed) $degrees: (int) number of degress to rotate image - # (str) param "left": rotate left - # (str) param "right": rotate right - # (str) param "upside": upside-down image - # Param out: - # Reference: - # Notes: The default direction of imageRotate() is counter clockwise. - # - { - if ($this->imageResized) { - - if (is_integer($value)) { - $degrees = $value; - } - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - if (isset($rgbArray['a'])) {$a = $rgbArray['a']; } - - if (is_string($value)) { - - $value = fix_strtolower($value); - - switch ($value) { - case 'left': - $degrees = 90; - break; - case 'right': - $degrees = 270; - break; - case 'upside': - $degrees = 180; - break; - default: - break; - } - - } - - // *** The default direction of imageRotate() is counter clockwise - // * This makes it clockwise - $degrees = 360 - $degrees; - - // *** Create background color - $bg = ImageColorAllocateAlpha($this->imageResized, $r, $g, $b, $a); - - // *** Fill with background - ImageFill($this->imageResized, 0, 0 , $bg); - - // *** Rotate - $this->imageResized = imagerotate($this->imageResized, $degrees, $bg); // Rotate 45 degrees and allocated the transparent colour as the one to make transparent (obviously) - - // Ensure alpha transparency - ImageSaveAlpha($this->imageResized,true); - - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Round corners -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function roundCorners($radius = 5, $bgColor = 'transparent') - # Author: Jarrod Oberto - # Date: 19-05-2011 - # Purpose: Create rounded corners on your image - # Param in: (int) radius = the amount of curvature - # (mixed) $bgColor = the corner background color - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Check if the user wants transparency - $isTransparent = false; - if (!is_array($bgColor)) { - if (fix_strtolower($bgColor) == 'transparent') { - $isTransparent = true; - } - } - - - // *** If we use transparency, we need to color our curved mask with a unique color - if ($isTransparent) { - $bgColor = $this->findUnusedGreen(); - } - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - if (isset($rgbArray['a'])) {$a = $rgbArray['a']; } - - - - // *** Create top-left corner mask (square) - $cornerImg = imagecreatetruecolor($radius, $radius); - //$cornerImg = imagecreate($radius, $radius); - - //imagealphablending($cornerImg, true); - //imagesavealpha($cornerImg, true); - - //imagealphablending($this->imageResized, false); - //imagesavealpha($this->imageResized, true); - - // *** Give it a color - $maskColor = imagecolorallocate($cornerImg, 0, 0, 0); - - - - // *** Replace the mask color (black) to transparent - imagecolortransparent($cornerImg, $maskColor); - - - - // *** Create the image background color - $imagebgColor = imagecolorallocate($cornerImg, $r, $g, $b); - - - - // *** Fill the corner area to the user defined color - imagefill($cornerImg, 0, 0, $imagebgColor); - - - imagefilledellipse($cornerImg, $radius, $radius, $radius * 2, $radius * 2, $maskColor ); - - - // *** Map to top left corner - imagecopymerge($this->imageResized, $cornerImg, 0, 0, 0, 0, $radius, $radius, 100); #tl - - // *** Map rounded corner to other corners by rotating and applying the mask - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, 0, $this->height - $radius, 0, 0, $radius, $radius, 100); #bl - - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, $this->width - $radius, $this->height - $radius, 0, 0, $radius, $radius, 100); #br - - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, $this->width - $radius, 0, 0, 0, $radius, $radius, 100); #tr - - - // *** If corners are to be transparent, we fill our chromakey color as transparent. - if ($isTransparent) { - //imagecolortransparent($this->imageResized, $imagebgColor); - $this->imageResized = $this->transparentImage($this->imageResized); - imagesavealpha($this->imageResized, true); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Shadow -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addShadow($shadowAngle=45, $blur=15, $bgColor='transparent') - # - # Author: Jarrod Oberto (Adapted from Pascal Naidon) - # Ref: http://www.les-stooges.org/pascal/webdesign/vignettes/index.php?la=en - # Purpose: Add a drop shadow to your image - # Params in: (int) $angle: the angle of the shadow - # (int) $blur: the blur distance - # (mixed) $bgColor: the color of the background - # Params out: - # Notes: - # - { - // *** A higher number results in a smoother shadow - define('STEPS', $blur*2); - - // *** Set the shadow distance - $shadowDistance = $blur*0.25; - - // *** Set blur width and height - $blurWidth = $blurHeight = $blur; - - - if ($shadowAngle == 0) { - $distWidth = 0; - $distHeight = 0; - } else { - $distWidth = $shadowDistance * cos(deg2rad($shadowAngle)); - $distHeight = $shadowDistance * sin(deg2rad($shadowAngle)); - } - - - // *** Convert color - if (fix_strtolower($bgColor) != 'transparent') { - $rgbArray = $this->formatColor($bgColor); - $r0 = $rgbArray['r']; - $g0 = $rgbArray['g']; - $b0 = $rgbArray['b']; - } - - - $image = $this->imageResized; - $width = $this->width; - $height = $this->height; - - - $newImage = imagecreatetruecolor($width, $height); - imagecopyresampled($newImage, $image, 0, 0, 0, 0, $width, $height, $width, $height); - - - // *** RGB - $rgb = imagecreatetruecolor($width+$blurWidth,$height+$blurHeight); - $colour = imagecolorallocate($rgb, 0, 0, 0); - imagefilledrectangle($rgb, 0, 0, $width+$blurWidth, $height+$blurHeight, $colour); - $colour = imagecolorallocate($rgb, 255, 255, 255); - //imagefilledrectangle($rgb, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-$distWidth, $height+$blurWidth*0.5-$distHeight, $colour); - imagefilledrectangle($rgb, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-$distWidth, $height+$blurWidth*0.5-$distHeight, $colour); - //imagecopymerge($rgb, $newImage, 1+$blurWidth*0.5-$distWidth, 1+$blurHeight*0.5-$distHeight, 0,0, $width, $height, 100); - imagecopymerge($rgb, $newImage, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, 0,0, $width+$blurWidth, $height+$blurHeight, 100); - - - // *** Shadow (alpha) - $shadow = imagecreatetruecolor($width+$blurWidth,$height+$blurHeight); - imagealphablending($shadow, false); - $colour = imagecolorallocate($shadow, 0, 0, 0); - imagefilledrectangle($shadow, 0, 0, $width+$blurWidth, $height+$blurHeight, $colour); - - - for($i=0;$i<=STEPS;$i++) { - - $t = ((1.0*$i)/STEPS); - $intensity = 255*$t*$t; - - $colour = imagecolorallocate($shadow, $intensity, $intensity, $intensity); - $points = array( - $blurWidth*$t, $blurHeight, // Point 1 (x, y) - $blurWidth, $blurHeight*$t, // Point 2 (x, y) - $width, $blurHeight*$t, // Point 3 (x, y) - $width+$blurWidth*(1-$t), $blurHeight, // Point 4 (x, y) - $width+$blurWidth*(1-$t), $height, // Point 5 (x, y) - $width, $height+$blurHeight*(1-$t), // Point 6 (x, y) - $blurWidth, $height+$blurHeight*(1-$t), // Point 7 (x, y) - $blurWidth*$t, $height // Point 8 (x, y) - ); - imagepolygon($shadow, $points, 8, $colour); - } - - for($i=0;$i<=STEPS;$i++) { - - $t = ((1.0*$i)/STEPS); - $intensity = 255*$t*$t; - - $colour = imagecolorallocate($shadow, $intensity, $intensity, $intensity); - imagefilledarc($shadow, $blurWidth-1, $blurHeight-1, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 180, 268, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $width, $blurHeight-1, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 270, 358, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $width, $height, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 0, 90, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $blurWidth-1, $height, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 90, 180, $colour, IMG_ARC_PIE); - } - - - $colour = imagecolorallocate($shadow, 255, 255, 255); - imagefilledrectangle($shadow, $blurWidth, $blurHeight, $width, $height, $colour); - imagefilledrectangle($shadow, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-1-$distWidth, $height+$blurHeight*0.5-1-$distHeight, $colour); - - - // *** The magic - imagealphablending($rgb, false); - - for ($theX=0;$theX> 16) & 0xFF; - $g = ($colArray >> 8) & 0xFF; - $b = $colArray & 0xFF; - - // *** Get the alpha value for every pixel of the shadow image - $colArray = imagecolorat($shadow,$theX,$theY); - $a = $colArray & 0xFF; - $a = 127-floor($a/2); - $t = $a/128.0; - - // *** Create color - if(fix_strtolower($bgColor) == 'transparent') { - $myColour = imagecolorallocatealpha($rgb,$r,$g,$b,$a); - } else { - $myColour = imagecolorallocate($rgb,$r*(1.0-$t)+$r0*$t,$g*(1.0-$t)+$g0*$t,$b*(1.0-$t)+$b0*$t); - } - - // *** Add color to new rgb image - imagesetpixel($rgb, $theX, $theY, $myColour); - } - } - - imagealphablending($rgb, true); - imagesavealpha($rgb, true); - - $this->imageResized = $rgb; - - imagedestroy($image); - imagedestroy($newImage); - imagedestroy($shadow); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Caption Box -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addCaptionBox($side='b', $thickness=50, $padding=0, $bgColor='#000', $transaprencyAmount=30) - # - # Author: Jarrod Oberto - # Date: 26 May 2011 - # Purpose: Add a caption box - # Params in: (str) $side: the side to add the caption box (t, r, b, or l). - # (int) $thickness: how thick you want the caption box to be. - # (mixed) $bgColor: The color of the caption box. - # (int) $transaprencyAmount: The amount of transparency to be - # applied. - # Params out: n/a - # Notes: - # - { - $side = fix_strtolower($side); - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - $positionArray = $this->calculateCaptionBoxPosition($side, $thickness, $padding); - - // *** Store incase we want to use method addTextToCaptionBox() - $this->captionBoxPositionArray = $positionArray; - - - $transaprencyAmount = $this->invertTransparency($transaprencyAmount, 127, false); - $transparent = imagecolorallocatealpha($this->imageResized, $r, $g, $b, $transaprencyAmount); - imagefilledrectangle($this->imageResized, $positionArray['x1'], $positionArray['y1'], $positionArray['x2'], $positionArray['y2'], $transparent); - } - - ## -------------------------------------------------------- - - public function addTextToCaptionBox($text, $fontColor='#fff', $fontSize = 12, $angle = 0, $font = null) - # - # Author: Jarrod Oberto - # Date: 03 Aug 11 - # Purpose: Simplify adding text to a caption box by automatically - # locating the center of the caption box - # Params in: The usually text paams (less a couple) - # Params out: n/a - # Notes: - # - { - - // *** Get the caption box measurements - if (count($this->captionBoxPositionArray) == 4) { - $x1 = $this->captionBoxPositionArray['x1']; - $x2 = $this->captionBoxPositionArray['x2']; - $y1 = $this->captionBoxPositionArray['y1']; - $y2 = $this->captionBoxPositionArray['y2']; - } else { - if ($this->debug) { throw new Exception('No caption box found.'); }else{ return false; } - } - - - // *** Get text font - $font = $this->getTextFont($font); - - // *** Get text size - $textSizeArray = $this->getTextSize($fontSize, $angle, $font, $text); - $textWidth = $textSizeArray['width']; - $textHeight = $textSizeArray['height']; - - // *** Find the width/height middle points - $boxXMiddle = (($x2 - $x1) / 2); - $boxYMiddle = (($y2 - $y1) / 2); - - // *** Box middle - half the text width/height - $xPos = ($x1 + $boxXMiddle) - ($textWidth/2); - $yPos = ($y1 + $boxYMiddle) - ($textHeight/2); - - $pos = $xPos . 'x' . $yPos; - - $this->addText($text, $pos, $padding = 0, $fontColor, $fontSize, $angle, $font); - - } - - ## -------------------------------------------------------- - - private function calculateCaptionBoxPosition($side, $thickness, $padding) - { - $positionArray = array(); - - switch ($side) { - case 't': - $positionArray['x1'] = 0; - $positionArray['y1'] = $padding; - $positionArray['x2'] = $this->width; - $positionArray['y2'] = $thickness + $padding; - break; - case 'r': - $positionArray['x1'] = $this->width - $thickness - $padding; - $positionArray['y1'] = 0; - $positionArray['x2'] = $this->width - $padding; - $positionArray['y2'] = $this->height; - break; - case 'b': - $positionArray['x1'] = 0; - $positionArray['y1'] = $this->height - $thickness - $padding; - $positionArray['x2'] = $this->width; - $positionArray['y2'] = $this->height - $padding; - break; - case 'l': - $positionArray['x1'] = $padding; - $positionArray['y1'] = 0; - $positionArray['x2'] = $thickness + $padding; - $positionArray['y2'] = $this->height; - break; - - default: - break; - } - - return $positionArray; - - } - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Get EXIF Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function getExif($debug=false) - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Get image EXIF data - # Param in: n/a - # Param out: An associate array of EXIF data - # Reference: - # Notes: - # 23 May 13 : added orientation flag -jco - # - { - - if (!$this->debug || !$debug) { $debug = false; } - - // *** Check all is good - check the EXIF library exists and the file exists, too. - if (!$this->testEXIFInstalled()) { if ($debug) { throw new Exception('The EXIF Library is not installed.'); }else{ return array(); }}; - if (!file_exists($this->fileName)) { if ($debug) { throw new Exception('Image not found.'); }else{ return array(); }}; - if ($this->fileExtension != '.jpg') { if ($debug) { throw new Exception('Metadata not supported for this image type.'); }else{ return array(); }}; - $exifData = exif_read_data($this->fileName, 'IFD0'); - - // *** Format the apperture value - $ev = $exifData['ApertureValue']; - $apPeicesArray = explode('/', $ev); - if (count($apPeicesArray) == 2) { - $apertureValue = round($apPeicesArray[0] / $apPeicesArray[1], 2, PHP_ROUND_HALF_DOWN) . ' EV'; - } else { $apertureValue = '';} - - // *** Format the focal length - $focalLength = $exifData['FocalLength']; - $flPeicesArray = explode('/', $focalLength); - if (count($flPeicesArray) == 2) { - $focalLength = $flPeicesArray[0] / $flPeicesArray[1] . '.0 mm'; - } else { $focalLength = '';} - - // *** Format fNumber - $fNumber = $exifData['FNumber']; - $fnPeicesArray = explode('/', $fNumber); - if (count($fnPeicesArray) == 2) { - $fNumber = $fnPeicesArray[0] / $fnPeicesArray[1]; - } else { $fNumber = '';} - - // *** Resolve ExposureProgram - if (isset($exifData['ExposureProgram'])) { $ep = $exifData['ExposureProgram']; } - if (isset($ep)) { $ep = $this->resolveExposureProgram($ep); } - - - // *** Resolve MeteringMode - $mm = $exifData['MeteringMode']; - $mm = $this->resolveMeteringMode($mm); - - // *** Resolve Flash - $flash = $exifData['Flash']; - $flash = $this->resolveFlash($flash); - - - if (isset($exifData['Make'])) { - $exifDataArray['make'] = $exifData['Make']; - } else { $exifDataArray['make'] = ''; } - - if (isset($exifData['Model'])) { - $exifDataArray['model'] = $exifData['Model']; - } else { $exifDataArray['model'] = ''; } - - if (isset($exifData['DateTime'])) { - $exifDataArray['date'] = $exifData['DateTime']; - } else { $exifDataArray['date'] = ''; } - - if (isset($exifData['ExposureTime'])) { - $exifDataArray['exposure time'] = $exifData['ExposureTime'] . ' sec.'; - } else { $exifDataArray['exposure time'] = ''; } - - if ($apertureValue != '') { - $exifDataArray['aperture value'] = $apertureValue; - } else { $exifDataArray['aperture value'] = ''; } - - if (isset($exifData['COMPUTED']['ApertureFNumber'])) { - $exifDataArray['f-stop'] = $exifData['COMPUTED']['ApertureFNumber']; - } else { $exifDataArray['f-stop'] = ''; } - - if (isset($exifData['FNumber'])) { - $exifDataArray['fnumber'] = $exifData['FNumber']; - } else { $exifDataArray['fnumber'] = ''; } - - if ($fNumber != '') { - $exifDataArray['fnumber value'] = $fNumber; - } else { $exifDataArray['fnumber value'] = ''; } - - if (isset($exifData['ISOSpeedRatings'])) { - $exifDataArray['iso'] = $exifData['ISOSpeedRatings']; - } else { $exifDataArray['iso'] = ''; } - - if ($focalLength != '') { - $exifDataArray['focal length'] = $focalLength; - } else { $exifDataArray['focal length'] = ''; } - - if (isset($ep)) { - $exifDataArray['exposure program'] = $ep; - } else { $exifDataArray['exposure program'] = ''; } - - if ($mm != '') { - $exifDataArray['metering mode'] = $mm; - } else { $exifDataArray['metering mode'] = ''; } - - if ($flash != '') { - $exifDataArray['flash status'] = $flash; - } else { $exifDataArray['flash status'] = ''; } - - if (isset($exifData['Artist'])) { - $exifDataArray['creator'] = $exifData['Artist'] ; - } else { $exifDataArray['creator'] = ''; } - - if (isset($exifData['Copyright'])) { - $exifDataArray['copyright'] = $exifData['Copyright']; - } else { $exifDataArray['copyright'] = ''; } - - // *** Orientation - if (isset($exifData['Orientation'])) { - $exifDataArray['orientation'] = $exifData['Orientation']; - } else { $exifDataArray['orientation'] = ''; } - - return $exifDataArray; - } - - ## -------------------------------------------------------- - - private function resolveExposureProgram($ep) - { - switch ($ep) { - case 0: - $ep = ''; - break; - case 1: - $ep = 'manual'; - break; - case 2: - $ep = 'normal program'; - break; - case 3: - $ep = 'aperture priority'; - break; - case 4: - $ep = 'shutter priority'; - break; - case 5: - $ep = 'creative program'; - break; - case 6: - $ep = 'action program'; - break; - case 7: - $ep = 'portrait mode'; - break; - case 8: - $ep = 'landscape mode'; - break; - - default: - break; - } - - return $ep; - } - - ## -------------------------------------------------------- - - private function resolveMeteringMode($mm) - { - switch ($mm) { - case 0: - $mm = 'unknown'; - break; - case 1: - $mm = 'average'; - break; - case 2: - $mm = 'center weighted average'; - break; - case 3: - $mm = 'spot'; - break; - case 4: - $mm = 'multi spot'; - break; - case 5: - $mm = 'pattern'; - break; - case 6: - $mm = 'partial'; - break; - case 255: - $mm = 'other'; - break; - - default: - break; - } - - return $mm; - } - - ## -------------------------------------------------------- - - private function resolveFlash($flash) - { - switch ($flash) { - case 0: - $flash = 'flash did not fire'; - break; - case 1: - $flash = 'flash fired'; - break; - case 5: - $flash = 'strobe return light not detected'; - break; - case 7: - $flash = 'strobe return light detected'; - break; - case 9: - $flash = 'flash fired, compulsory flash mode'; - break; - case 13: - $flash = 'flash fired, compulsory flash mode, return light not detected'; - break; - case 15: - $flash = 'flash fired, compulsory flash mode, return light detected'; - break; - case 16: - $flash = 'flash did not fire, compulsory flash mode'; - break; - case 24: - $flash = 'flash did not fire, auto mode'; - break; - case 25: - $flash = 'flash fired, auto mode'; - break; - case 29: - $flash = 'flash fired, auto mode, return light not detected'; - break; - case 31: - $flash = 'flash fired, auto mode, return light detected'; - break; - case 32: - $flash = 'no flash function'; - break; - case 65: - $flash = 'flash fired, red-eye reduction mode'; - break; - case 69: - $flash = 'flash fired, red-eye reduction mode, return light not detected'; - break; - case 71: - $flash = 'flash fired, red-eye reduction mode, return light detected'; - break; - case 73: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode'; - break; - case 77: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode, return light not detected'; - break; - case 79: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode, return light detected'; - break; - case 89: - $flash = 'flash fired, auto mode, red-eye reduction mode'; - break; - case 93: - $flash = 'flash fired, auto mode, return light not detected, red-eye reduction mode'; - break; - case 95: - $flash = 'flash fired, auto mode, return light detected, red-eye reduction mode'; - break; - - default: - break; - } - - return $flash; - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Get IPTC Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Write IPTC Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function writeIPTCcaption($value) - # Caption - { - $this->writeIPTC(120, $value); - } - - ## -------------------------------------------------------- - - public function writeIPTCwriter($value) - { - //$this->writeIPTC(65, $value); - } - - ## -------------------------------------------------------- - - private function writeIPTC($dat, $value) - { - - # LIMIT TO JPG - - $caption_block = $this->iptc_maketag(2, $dat, $value); - $image_string = iptcembed($caption_block, $this->fileName); - file_put_contents('iptc.jpg', $image_string); - } - -## -------------------------------------------------------- - - private function iptc_maketag($rec,$dat,$val) - # Author: Thies C. Arntzen - # Purpose: Function to format the new IPTC text - # Param in: $rec: Application record. (We’re working with #2) - # $dat: Index. (120 for caption, 118 for contact. See the IPTC IIM - # specification: - # http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf - # $val: Value/data/text. Make sure this is within the length - # constraints of the IPTC IIM specification - # Ref: http://blog.peterhaza.no/working-with-image-meta-data-in-exif-and-iptc-headers-from-php/ - # http://php.net/manual/en/function.iptcembed.php - # - { - $len = strlen($val); - if ($len < 0x8000) - return chr(0x1c).chr($rec).chr($dat). - chr($len >> 8). - chr($len & 0xff). - $val; - else - return chr(0x1c).chr($rec).chr($dat). - chr(0x80).chr(0x04). - chr(($len >> 24) & 0xff). - chr(($len >> 16) & 0xff). - chr(($len >> 8 ) & 0xff). - chr(($len ) & 0xff). - $val; - } - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Write XMP Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - //http://xmpphptoolkit.sourceforge.net/ - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Text -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addText($text, $pos = '20x20', $padding = 0, $fontColor='#fff', $fontSize = 12, $angle = 0, $font = null) - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Add text to an image - # Param in: - # Param out: - # Reference: http://php.net/manual/en/function.imagettftext.php - # Notes: Make sure you supply the font. - # - { - - // *** Convert color - $rgbArray = $this->formatColor($fontColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - // *** Get text font - $font = $this->getTextFont($font); - - // *** Get text size - $textSizeArray = $this->getTextSize($fontSize, $angle, $font, $text); - $textWidth = $textSizeArray['width']; - $textHeight = $textSizeArray['height']; - - // *** Find co-ords to place text - $posArray = $this->calculatePosition($pos, $padding, $textWidth, $textHeight, false); - $x = $posArray['width']; - $y = $posArray['height']; - - $fontColor = imagecolorallocate($this->imageResized, $r, $g, $b); - - // *** Add text - imagettftext($this->imageResized, $fontSize, $angle, $x, $y, $fontColor, $font, $text); - } - - ## -------------------------------------------------------- - - private function getTextFont($font) - { - // *** Font path (shou - $fontPath = dirname(__FILE__) . '/' . $this->fontDir; - - - // *** The below is/may be needed depending on your version (see ref) - putenv('GDFONTPATH=' . realpath('.')); - - // *** Check if the passed in font exsits... - if ($font == null || !file_exists($font)) { - - // *** ...If not, default to this font. - $font = $fontPath . '/arimo.ttf'; - - // *** Check our default font exists... - if (!file_exists($font)) { - - // *** If not, return false - if ($this->debug) { throw new Exception('Font not found'); }else{ return false; } - } - } - - return $font; - - } - - ## -------------------------------------------------------- - - private function getTextSize($fontSize, $angle, $font, $text) - { - - // *** Define box (so we can get the width) - $box = @imageTTFBbox($fontSize, $angle, $font, $text); - - // *** Get width of text from dimensions - $textWidth = abs($box[4] - $box[0]); - - // *** Get height of text from dimensions (should also be same as $fontSize) - $textHeight = abs($box[5] - $box[1]); - - return array('height' => $textHeight, 'width' => $textWidth); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Watermark -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addWatermark($watermarkImage, $pos, $padding = 0, $opacity = 0) - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Add watermark image - # Param in: (str) $watermark: The watermark image - # (str) $pos: Could be a pre-determined position such as: - # tl = top left, - # t = top (middle), - # tr = top right, - # l = left, - # m = middle, - # r = right, - # bl = bottom left, - # b = bottom (middle), - # br = bottom right - # Or, it could be a co-ordinate position such as: 50x100 - # - # (int) $padding: If using a pre-determined position you can - # adjust the padding from the edges by passing an amount - # in pixels. If using co-ordinates, this value is ignored. - # Param out: - # Reference: http://www.php.net/manual/en/image.examples-watermark.php - # Notes: Based on example in reference. - # - # - { - - // Load the stamp and the photo to apply the watermark to - $stamp = $this->openImage ($watermarkImage); # stamp - $im = $this->imageResized; # photo - - // *** Get stamps width and height - $sx = imagesx($stamp); - $sy = imagesy($stamp); - - // *** Find co-ords to place image - $posArray = $this->calculatePosition($pos, $padding, $sx, $sy); - $x = $posArray['width']; - $y = $posArray['height']; - - // *** Set watermark opacity - if (fix_strtolower(strrchr($watermarkImage, '.')) == '.png') { - - $opacity = $this->invertTransparency($opacity, 100); - $this->filterOpacity($stamp, $opacity); - } - - // Copy the watermark image onto our photo - imagecopy($im, $stamp, $x, $y, 0, 0, imagesx($stamp), imagesy($stamp)); - - } - - ## -------------------------------------------------------- - - private function calculatePosition($pos, $padding, $assetWidth, $assetHeight, $upperLeft = true) - # - # Author: Jarrod Oberto - # Date: 08-05-11 - # Purpose: Calculate the x, y pixel cordinates of the asset to place - # Params in: (str) $pos: Either something like: "tl", "l", "br" or an - # exact position like: "100x50" - # (int) $padding: The amount of padding from the edge. Only - # used for the predefined $pos. - # (int) $assetWidth: The width of the asset to add to the image - # (int) $assetHeight: The height of the asset to add to the image - # (bol) $upperLeft: if true, the asset will be positioned based - # on the upper left x, y coords. If false, it means you're - # using the lower left as the basepoint and this will - # convert it to the upper left position - # Params out: - # NOTE: this is done from the UPPER left corner!! But will convert lower - # left basepoints to upper left if $upperleft is set to false - # - # - { - $pos = fix_strtolower($pos); - - // *** If co-ords have been entered - if (strstr($pos, 'x')) { - $pos = str_replace(' ', '', $pos); - - $xyArray = explode('x', $pos); - list($width, $height) = $xyArray; - - } else { - - switch ($pos) { - case 'tl': - $width = 0 + $padding; - $height = 0 + $padding; - break; - - case 't': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = 0 + $padding; - break; - - case 'tr': - $width = $this->width - $assetWidth - $padding; - $height = 0 + $padding;; - break; - - case 'l': - $width = 0 + $padding; - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'm': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'r': - $width = $this->width - $assetWidth - $padding; - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'bl': - $width = 0 + $padding; - $height = $this->height - $assetHeight - $padding; - break; - - case 'b': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = $this->height - $assetHeight - $padding; - break; - - case 'br': - $width = $this->width - $assetWidth - $padding; - $height = $this->height - $assetHeight - $padding; - break; - - default: - $width = 0; - $height = 0; - break; - } - } - - if (!$upperLeft) { - $height = $height + $assetHeight; - } - - return array('width' => $width, 'height' => $height); - } - - - ## -------------------------------------------------------- - - private function filterOpacity(&$img, $opacity = 75) - # - # Author: aiden dot mail at freemail dot hu - # Author date: 29-03-08 08:16 - # Date added: 08-05-11 - # Purpose: Change opacity of image - # Params in: $img: Image resource id - # (int) $opacity: the opacity amount: 0-100, 100 being not opaque. - # Params out: (bool) true on success, else false - # Ref: http://www.php.net/manual/en/function.imagefilter.php#82162 - # Notes: png only - # - { - - if (!isset($opacity)) { - return false; - } - - if ($opacity == 100) { - return true; - } - - $opacity /= 100; - - //get image width and height - $w = imagesx($img); - $h = imagesy($img); - - //turn alpha blending off - imagealphablending($img, false); - - //find the most opaque pixel in the image (the one with the smallest alpha value) - $minalpha = 127; - for ($x = 0; $x < $w; $x++) - for ($y = 0; $y < $h; $y++) { - $alpha = ( imagecolorat($img, $x, $y) >> 24 ) & 0xFF; - if ($alpha < $minalpha) { - $minalpha = $alpha; - } - } - - //loop through image pixels and modify alpha for each - for ($x = 0; $x < $w; $x++) { - for ($y = 0; $y < $h; $y++) { - //get current alpha value (represents the TANSPARENCY!) - $colorxy = imagecolorat($img, $x, $y); - $alpha = ( $colorxy >> 24 ) & 0xFF; - //calculate new alpha - if ($minalpha !== 127) { - $alpha = 127 + 127 * $opacity * ( $alpha - 127 ) / ( 127 - $minalpha ); - } else { - $alpha += 127 * $opacity; - } - //get the color index with new alpha - $alphacolorxy = imagecolorallocatealpha($img, ( $colorxy >> 16 ) & 0xFF, ( $colorxy >> 8 ) & 0xFF, $colorxy & 0xFF, $alpha); - //set pixel with the new color + opacity - if (!imagesetpixel($img, $x, $y, $alphacolorxy)) { - - return false; - } - } - } - - return true; - } - -## -------------------------------------------------------- - - private function openImage($file) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: - # Param in: - # Param out: n/a - # Reference: - # Notes: - # - { - - if (!file_exists($file) && !$this->checkStringStartsWith('http://', $file)) { if ($this->debug) { throw new Exception('Image not found.'); }else{ throw new Exception(); }}; - - // *** Get extension - $extension = strrchr($file, '.'); - $extension = fix_strtolower($extension); - switch($extension) - { - case '.jpg': - case '.jpeg': - $img = @imagecreatefromjpeg($file); - break; - case '.gif': - $img = @imagecreatefromgif($file); - break; - case '.png': - $img = @imagecreatefrompng($file); - break; - case '.bmp': - $img = @$this->imagecreatefrombmp($file); - break; - case '.psd': - $img = @$this->imagecreatefrompsd($file); - break; - - - // ... etc - - default: - $img = false; - break; - } - - return $img; - } - -## -------------------------------------------------------- - - public function reset() - # - # Author: Jarrod Oberto - # Date: 30-08-11 - # Purpose: Reset the resource (allow further editing) - # Params in: - # Params out: - # Notes: - # - { - $this->__construct($this->fileName); - } - -## -------------------------------------------------------- - - public function saveImage($savePath, $imageQuality="100") - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Saves the image - # Param in: $savePath: Where to save the image including filename: - # $imageQuality: image quality you want the image saved at 0-100 - # Param out: n/a - # Reference: - # Notes: * gif doesn't have a quality parameter - # * jpg has a quality setting 0-100 (100 being the best) - # * png has a quality setting 0-9 (0 being the best) - # - # * bmp files have no native support for bmp files. We use a - # third party class to save as bmp. - { - - // *** Perform a check or two. - if (!is_resource($this->imageResized)) { if ($this->debug) { throw new Exception('saveImage: This is not a resource.'); }else{ throw new Exception(); }} - $fileInfoArray = pathInfo($savePath); - clearstatcache(); - if (!is_writable($fileInfoArray['dirname'])) { if ($this->debug) { throw new Exception('The path is not writable. Please check your permissions.'); }else{ throw new Exception(); }} - - // *** Get extension - $extension = strrchr($savePath, '.'); - $extension = fix_strtolower($extension); - - $error = ''; - - switch($extension) - { - case '.jpg': - case '.jpeg': - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_JPG) { - imagejpeg($this->imageResized, $savePath, $imageQuality); - } else { $error = 'jpg'; } - break; - - case '.gif': - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_GIF) { - imagegif($this->imageResized, $savePath); - } else { $error = 'gif'; } - break; - - case '.png': - // *** Scale quality from 0-100 to 0-9 - $scaleQuality = round(($imageQuality/100) * 9); - - // *** Invert qualit setting as 0 is best, not 9 - $invertScaleQuality = 9 - $scaleQuality; - - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_PNG) { - imagepng($this->imageResized, $savePath, $invertScaleQuality); - } else { $error = 'png'; } - break; - - case '.bmp': - file_put_contents($savePath, $this->GD2BMPstring($this->imageResized)); - break; - - - // ... etc - - default: - // *** No extension - No save. - $this->errorArray[] = 'This file type (' . $extension . ') is not supported. File not saved.'; - break; - } - - //imagedestroy($this->imageResized); - - // *** Display error if a file type is not supported. - if ($error != '') { - $this->errorArray[] = $error . ' support is NOT enabled. File not saved.'; - } - } - -## -------------------------------------------------------- - - public function displayImage($fileType = 'jpg', $imageQuality="100") - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Display images directly to the browser - # Param in: The image type you want to display - # Param out: - # Reference: - # Notes: - # - { - - if (!is_resource($this->imageResized)) { if ($this->debug) { throw new Exception('saveImage: This is not a resource.'); }else{ throw new Exception(); }} - - switch($fileType) - { - case 'jpg': - case 'jpeg': - header('Content-type: image/jpeg'); - imagejpeg($this->imageResized, '', $imageQuality); - break; - case 'gif': - header('Content-type: image/gif'); - imagegif($this->imageResized); - break; - case 'png': - header('Content-type: image/png'); - - // *** Scale quality from 0-100 to 0-9 - $scaleQuality = round(($imageQuality/100) * 9); - - // *** Invert qualit setting as 0 is best, not 9 - $invertScaleQuality = 9 - $scaleQuality; - - imagepng($this->imageResized, '', $invertScaleQuality); - break; - case 'bmp': - echo 'bmp file format is not supported.'; - break; - - // ... etc - - default: - // *** No extension - No save. - break; - } - - - //imagedestroy($this->imageResized); - } - -## -------------------------------------------------------- - - public function setTransparency($bool) - # Sep 2011 - { - $this->keepTransparency = $bool; - } - -## -------------------------------------------------------- - - public function setFillColor($value) - # Sep 2011 - # Param in: (mixed) $value: (array) Could be an array of RGB - # (str) Could be hex #ffffff or #fff, fff, ffffff - # - # If the keepTransparency is set to false, then no transparency is to be used. - # This is ideal when you want to save as jpg. - # - # this method allows you to set the background color to use instead of - # transparency. - # - { - $colorArray = $this->formatColor($value); - $this->fillColorArray = $colorArray; - } - -## -------------------------------------------------------- - - public function setCropFromTop($value) - # Sep 2011 - { - $this->cropFromTopPercent = $value; - } - -## -------------------------------------------------------- - - public function testGDInstalled() - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test to see if GD is installed - # Param in: n/a - # Param out: (bool) True is gd extension loaded otherwise false - # Reference: - # Notes: - # - { - if(extension_loaded('gd') && function_exists('gd_info')) - { - $gdInstalled = true; - } - else - { - $gdInstalled = false; - } - - return $gdInstalled; - } - -## -------------------------------------------------------- - - public function testEXIFInstalled() - # Author: Jarrod Oberto - # Date: 08-05-11 - # Purpose: Test to see if EXIF is installed - # Param in: n/a - # Param out: (bool) True is exif extension loaded otherwise false - # Reference: - # Notes: - # - { - if(extension_loaded('exif')) - { - $exifInstalled = true; - } - else - { - $exifInstalled = false; - } - - return $exifInstalled; - } - -## -------------------------------------------------------- - - public function testIsImage($image) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test if file is an image - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - if ($image) - { - $fileIsImage = true; - } - else - { - $fileIsImage = false; - } - - return $fileIsImage; - } - -## -------------------------------------------------------- - - public function testFunct() - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test Function - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - echo $this->height; - } - -## -------------------------------------------------------- - - public function setForceStretch($value) - # Author: Jarrod Oberto - # Date: 23-12-10 - # Purpose: - # Param in: (bool) $value - # Param out: n/a - # Reference: - # Notes: - # - { - $this->forceStretch = $value; - } - -## -------------------------------------------------------- - - public function setFile($fileName) - # Author: Jarrod Oberto - # Date: 28-02-08 - # Purpose: - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - self::__construct($fileName); - } - -## -------------------------------------------------------- - - public function getFileName() - # Author: Jarrod Oberto - # Date: 10-09-08 - # Purpose: - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - return $this->fileName; - } - -## -------------------------------------------------------- - - public function getHeight() - { - return $this->height; - } - -## -------------------------------------------------------- - - public function getWidth() - { - return $this->width; - } - -## -------------------------------------------------------- - - public function getOriginalHeight() - { - return $this->heightOriginal; - } - -## -------------------------------------------------------- - - public function getOriginalWidth() - { - return $this->widthOriginal; - } - -## -------------------------------------------------------- - - public function getErrors() - # Author: Jarrod Oberto - # Date: 19-11-09 - # Purpose: Returns the error array - # Param in: n/a - # Param out: Array of errors - # Reference: - # Notes: - # - { - return $this->errorArray; - } - -## -------------------------------------------------------- - - private function checkInterlaceImage($isEnabled) - # jpg will use progressive (they don't use interace) - { - if ($isEnabled) { - imageinterlace($this->imageResized, $isEnabled); - } - } - -## -------------------------------------------------------- - - protected function formatColor($value) - # Author: Jarrod Oberto - # Date: 09-05-11 - # Purpose: Determine color method passed in and return color as RGB - # Param in: (mixed) $value: (array) Could be an array of RGB - # (str) Could be hex #ffffff or #fff, fff, ffffff - # Param out: - # Reference: - # Notes: - # - { - $rgbArray = array(); - - // *** If it's an array it should be R, G, B - if (is_array($value)) { - - if (key($value) == 0 && count($value) == 3) { - - $rgbArray['r'] = $value[0]; - $rgbArray['g'] = $value[1]; - $rgbArray['b'] = $value[2]; - - } else { - $rgbArray = $value; - } - } else if (fix_strtolower($value) == 'transparent') { - - $rgbArray = array( - 'r' => 255, - 'g' => 255, - 'b' => 255, - 'a' => 127 - ); - - } else { - - // *** ...Else it should be hex. Let's make it RGB - $rgbArray = $this -> hex2dec($value); - } - - return $rgbArray; - } - - ## -------------------------------------------------------- - - function hex2dec($hex) - # Purpose: Convert #hex color to RGB - { - $color = str_replace('#', '', $hex); - - if (strlen($color) == 3) { - $color = $color . $color; - } - - $rgb = array( - 'r' => hexdec(substr($color, 0, 2)), - 'g' => hexdec(substr($color, 2, 2)), - 'b' => hexdec(substr($color, 4, 2)), - 'a' => 0 - ); - return $rgb; - } - - ## -------------------------------------------------------- - - private function createImageColor ($colorArray) - { - $r = $colorArray['r']; - $g = $colorArray['g']; - $b = $colorArray['b']; - - return imagecolorallocate($this->imageResized, $r, $g, $b); - } - - ## -------------------------------------------------------- - - private function testColorExists($colorArray) - { - $r = $colorArray['r']; - $g = $colorArray['g']; - $b = $colorArray['b']; - - if (imagecolorexact($this->imageResized, $r, $g, $b) == -1) { - return false; - } else { - return true; - } - } - - ## -------------------------------------------------------- - - private function findUnusedGreen() - # Purpose: We find a green color suitable to use like green-screen effect. - # Therefore, the color must not exist in the image. - { - $green = 255; - - do { - - $greenChroma = array(0, $green, 0); - $colorArray = $this->formatColor($greenChroma); - $match = $this->testColorExists($colorArray); - $green--; - - } while ($match == false && $green > 0); - - // *** If no match, just bite the bullet and use green value of 255 - if (!$match) { - $greenChroma = array(0, $green, 0); - } - - return $greenChroma; - } - - ## -------------------------------------------------------- - - private function findUnusedBlue() - # Purpose: We find a green color suitable to use like green-screen effect. - # Therefore, the color must not exist in the image. - { - $blue = 255; - - do { - - $blueChroma = array(0, 0, $blue); - $colorArray = $this->formatColor($blueChroma); - $match = $this->testColorExists($colorArray); - $blue--; - - } while ($match == false && $blue > 0); - - // *** If no match, just bite the bullet and use blue value of 255 - if (!$match) { - $blueChroma = array(0, 0, $blue); - } - - return $blueChroma; - } - - ## -------------------------------------------------------- - - private function invertTransparency($value, $originalMax, $invert=true) - # Purpose: This does two things: - # 1) Convert the range from 0-127 to 0-100 - # 2) Inverts value to 100 is not transparent while 0 is fully - # transparent (like Photoshop) - { - // *** Test max range - if ($value > $originalMax) { - $value = $originalMax; - } - - // *** Test min range - if ($value < 0) { - $value = 0; - } - - if ($invert) { - return $originalMax - (($value/100) * $originalMax); - } else { - return ($value/100) * $originalMax; - } - } - - ## -------------------------------------------------------- - - private function transparentImage($src) - { - // *** making images with white bg transparent - $r1 = 0; - $g1 = 255; - $b1 = 0; - for ($x = 0; $x < imagesx($src); ++$x) { - for ($y = 0; $y < imagesy($src); ++$y) { - $color = imagecolorat($src, $x, $y); - $r = ($color >> 16) & 0xFF; - $g = ($color >> 8) & 0xFF; - $b = $color & 0xFF; - for ($i = 0; $i < 270; $i++) { - //if ($r . $g . $b == ($r1 + $i) . ($g1 + $i) . ($b1 + $i)) { - if ($r == 0 && $g == 255 && $b == 0) { - //if ($g == 255) { - $trans_colour = imagecolorallocatealpha($src, 0, 0, 0, 127); - imagefill($src, $x, $y, $trans_colour); - } - } - } - } - - return $src; - } - - ## -------------------------------------------------------- - - function checkStringStartsWith($needle, $haystack) - # Check if a string starts with a specific pattern - { - return (substr($haystack, 0, strlen($needle))==$needle); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - BMP SUPPORT (SAVING) - James Heinrich -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function GD2BMPstring(&$gd_image) - # Author: James Heinrich - # Purpose: Save file as type bmp - # Param in: The image canvas (passed as ref) - # Param out: - # Reference: - # Notes: This code was stripped out of two external files - # (phpthumb.bmp.php,phpthumb.functions.php) and added below to - # avoid dependancies. - # - { - $imageX = ImageSX($gd_image); - $imageY = ImageSY($gd_image); - - $BMP = ''; - for ($y = ($imageY - 1); $y >= 0; $y--) { - $thisline = ''; - for ($x = 0; $x < $imageX; $x++) { - $argb = $this->GetPixelColor($gd_image, $x, $y); - $thisline .= chr($argb['blue']).chr($argb['green']).chr($argb['red']); - } - while (strlen($thisline) % 4) { - $thisline .= "\x00"; - } - $BMP .= $thisline; - } - - $bmpSize = strlen($BMP) + 14 + 40; - // BITMAPFILEHEADER [14 bytes] - http://msdn.microsoft.com/library/en-us/gdi/bitmaps_62uq.asp - $BITMAPFILEHEADER = 'BM'; // WORD bfType; - $BITMAPFILEHEADER .= $this->LittleEndian2String($bmpSize, 4); // DWORD bfSize; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 0, 2); // WORD bfReserved1; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 0, 2); // WORD bfReserved2; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 54, 4); // DWORD bfOffBits; - - // BITMAPINFOHEADER - [40 bytes] http://msdn.microsoft.com/library/en-us/gdi/bitmaps_1rw2.asp - $BITMAPINFOHEADER = $this->LittleEndian2String( 40, 4); // DWORD biSize; - $BITMAPINFOHEADER .= $this->LittleEndian2String( $imageX, 4); // LONG biWidth; - $BITMAPINFOHEADER .= $this->LittleEndian2String( $imageY, 4); // LONG biHeight; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 1, 2); // WORD biPlanes; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 24, 2); // WORD biBitCount; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biCompression; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biSizeImage; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 2835, 4); // LONG biXPelsPerMeter; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 2835, 4); // LONG biYPelsPerMeter; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biClrUsed; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biClrImportant; - - return $BITMAPFILEHEADER.$BITMAPINFOHEADER.$BMP; - } - -## -------------------------------------------------------- - - private function GetPixelColor(&$img, $x, $y) - # Author: James Heinrich - # Purpose: - # Param in: - # Param out: - # Reference: - # Notes: - # - { - if (!is_resource($img)) { - return false; - } - return @ImageColorsForIndex($img, @ImageColorAt($img, $x, $y)); - } - -## -------------------------------------------------------- - - private function LittleEndian2String($number, $minbytes=1) - # Author: James Heinrich - # Purpose: BMP SUPPORT (SAVING) - # Param in: - # Param out: - # Reference: - # Notes: - # - { - $intstring = ''; - while ($number > 0) { - $intstring = $intstring.chr($number & 255); - $number >>= 8; - } - return str_pad($intstring, $minbytes, "\x00", STR_PAD_RIGHT); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - BMP SUPPORT (READING) -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function ImageCreateFromBMP($filename) - # Author: DHKold - # Date: The 15th of June 2005 - # Version: 2.0B - # Purpose: To create an image from a BMP file. - # Param in: BMP file to open. - # Param out: Return a resource like the other ImageCreateFrom functions - # Reference: http://us3.php.net/manual/en/function.imagecreate.php#53879 - # Bug fix: Author: domelca at terra dot es - # Date: 06 March 2008 - # Fix: Correct 16bit BMP support - # Notes: - # - { - - //Ouverture du fichier en mode binaire - if (! $f1 = fopen($filename,"rb")) return FALSE; - - //1 : Chargement des ent�tes FICHIER - $FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14)); - if ($FILE['file_type'] != 19778) return FALSE; - - //2 : Chargement des ent�tes BMP - $BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'. - '/Vcompression/Vsize_bitmap/Vhoriz_resolution'. - '/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40)); - $BMP['colors'] = pow(2,$BMP['bits_per_pixel']); - - if ($BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset']; - - $BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8; - $BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']); - $BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4); - $BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4); - $BMP['decal'] = 4-(4*$BMP['decal']); - - if ($BMP['decal'] == 4) $BMP['decal'] = 0; - - //3 : Chargement des couleurs de la palette - $PALETTE = array(); - if ($BMP['colors'] < 16777216) - { - $PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4)); - } - - //4 : Cr�ation de l'image - $IMG = fread($f1,$BMP['size_bitmap']); - $VIDE = chr(0); - - $res = imagecreatetruecolor($BMP['width'],$BMP['height']); - $P = 0; - $Y = $BMP['height']-1; - while ($Y >= 0) - { - $X=0; - while ($X < $BMP['width']) - { - if ($BMP['bits_per_pixel'] == 24) - $COLOR = unpack("V",substr($IMG,$P,3).$VIDE); - elseif ($BMP['bits_per_pixel'] == 16) - { - - /* - * BMP 16bit fix - * ================= - * - * Ref: http://us3.php.net/manual/en/function.imagecreate.php#81604 - * - * Notes: - * "don't work with bmp 16 bits_per_pixel. change pixel - * generator for this." - * - */ - - // *** Original code (don't work) - //$COLOR = unpack("n",substr($IMG,$P,2)); - //$COLOR[1] = $PALETTE[$COLOR[1]+1]; - - $COLOR = unpack("v",substr($IMG,$P,2)); - $blue = ($COLOR[1] & 0x001f) << 3; - $green = ($COLOR[1] & 0x07e0) >> 3; - $red = ($COLOR[1] & 0xf800) >> 8; - $COLOR[1] = $red * 65536 + $green * 256 + $blue; - - } - elseif ($BMP['bits_per_pixel'] == 8) - { - $COLOR = unpack("n",$VIDE.substr($IMG,$P,1)); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - elseif ($BMP['bits_per_pixel'] == 4) - { - $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); - if (($P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - elseif ($BMP['bits_per_pixel'] == 1) - { - $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); - if (($P*8)%8 == 0) $COLOR[1] = $COLOR[1] >>7; - elseif (($P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6; - elseif (($P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5; - elseif (($P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4; - elseif (($P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3; - elseif (($P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2; - elseif (($P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1; - elseif (($P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - else - return FALSE; - - imagesetpixel($res,$X,$Y,$COLOR[1]); - $X++; - $P += $BMP['bytes_per_pixel']; - } - - $Y--; - $P+=$BMP['decal']; - } - //Fermeture du fichier - fclose($f1); - - return $res; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - PSD SUPPORT (READING) -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function imagecreatefrompsd($fileName) - # Author: Tim de Koning - # Version: 1.3 - # Purpose: To create an image from a PSD file. - # Param in: PSD file to open. - # Param out: Return a resource like the other ImageCreateFrom functions - # Reference: http://www.kingsquare.nl/phppsdreader - # Notes: - # - { - if (file_exists($this->psdReaderPath)) { - - - include_once($this->psdReaderPath); - - $psdReader = new PhpPsdReader($fileName); - - if (isset($psdReader->infoArray['error'])) return ''; - else return $psdReader->getImage(); - } else { - return false; - } - } - -## -------------------------------------------------------- - - public function __destruct() { - if (is_resource($this->imageResized)) { - imagedestroy($this->imageResized); - } - } - -## -------------------------------------------------------- - -} - - - - -/* - * Example with some API calls (outdated): - * - * - * =============================== - * Compulsary - * =============================== - * - * include("classes/resize_class.php"); - * - * // *** Initialise object - * $magicianObj = new resize('images/cars/large/a.jpg'); - * - * // *** Turn off stretching (optional) - * $magicianObj -> setForceStretch(false); - * - * // *** Resize object - * $magicianObj -> resizeImage(150, 100, 0); - * - * =============================== - * Image options - can run none, one, or all. - * =============================== - * - * // *** Add watermark - * $magicianObj -> addWatermark('stamp.png'); - * - * // *** Add text - * $magicianObj -> addText('testing...'); - * - * =============================== - * Output options - can run one, or the other, or both. - * =============================== - * - * // *** Save image to disk - * $magicianObj -> saveImage('images/cars/large/b.jpg', 100); - * - * // *** Or output to screen (params in can be jpg, gif, png) - * $magicianObj -> displayImage('png'); - * - * =============================== - * Return options - return errors. nice for debuggin. - * =============================== - * - * // *** Return error array - * $errorArray = $magicianObj -> getErrors(); - * - * - * =============================== - * Cleanup options - not really neccessary, but good practice - * =============================== - * - * // *** Free used memory - * $magicianObj -> __destruct(); - */ -?> \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php deleted file mode 100644 index 73819a48..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php +++ /dev/null @@ -1,486 +0,0 @@ - resizeImage($newwidth, $newheight, 'crop'); - $magicianObj -> saveImage($imgthumb,80); - return true; - } - return false; -} - -function create_img($imgfile, $imgthumb, $newwidth, $newheight="") { - if(image_check_memory_usage($imgfile,$newwidth,$newheight)){ - require_once('php_image_magician.php'); - $magicianObj = new imageLib($imgfile); - $magicianObj -> resizeImage($newwidth, $newheight, 'auto'); - $magicianObj -> saveImage($imgthumb,80); - return true; - }else{ - return false; - } -} - -function makeSize($size) { - $units = array('B','KB','MB','GB','TB'); - $u = 0; - while ( (round($size / 1024) > 0) && ($u < 4) ) { - $size = $size / 1024; - $u++; - } - return (number_format($size, 0) . " " . $units[$u]); -} - -function foldersize($path) { - $total_size = 0; - $files = scandir($path); - $cleanPath = rtrim($path, '/'). '/'; - - foreach($files as $t) { - if ($t != "." && $t != "..") { - $currentFile = $cleanPath . $t; - if (is_dir($currentFile)) { - $size = foldersize($currentFile); - $total_size += $size; - } - else { - $size = filesize($currentFile); - $total_size += $size; - } - } - } - - return $total_size; -} - -function filescount($path) { - $total_count = 0; - $files = scandir($path); - $cleanPath = rtrim($path, '/'). '/'; - - foreach($files as $t) { - if ($t != "." && $t != "..") { - $currentFile = $cleanPath . $t; - if (is_dir($currentFile)) { - $size = filescount($currentFile); - $total_count += $size; - } - else { - $total_count += 1; - } - } - } - - return $total_count; -} - -function create_folder($path=false,$path_thumbs=false){ - $oldumask = umask(0); - if ($path && !file_exists($path)) - mkdir($path, 0777, true); // or even 01777 so you get the sticky bit set - if($path_thumbs && !file_exists($path_thumbs)) - mkdir($path_thumbs, 0777, true) or die("$path_thumbs cannot be found"); // or even 01777 so you get the sticky bit set - umask($oldumask); -} - -function check_files_extensions_on_path($path,$ext){ - if(!is_dir($path)){ - $fileinfo = pathinfo($path); - if(!in_array(mb_strtolower($fileinfo['extension']),$ext)) - unlink($path); - }else{ - $files = scandir($path); - foreach($files as $file){ - check_files_extensions_on_path(trim($path,'/')."/".$file,$ext); - } - } -} - -function check_files_extensions_on_phar( $phar, &$files, $basepath, $ext ) { - foreach( $phar as $file ) - { - if( $file->isFile() ) - { - if(in_array(mb_strtolower($file->getExtension()),$ext)) - { - $files[] = $basepath.$file->getFileName( ); - } - } - else if( $file->isDir() ) - { - $iterator = new DirectoryIterator( $file ); - check_files_extensions_on_phar($iterator, $files, $basepath.$file->getFileName().'/', $ext); - } - } -} - -function fix_get_params($str){ - return strip_tags(preg_replace( "/[^a-zA-Z0-9\.\[\]_| -]/", '', $str)); -} - -function fix_filename($str,$transliteration){ - if($transliteration){ - if( function_exists( 'transliterator_transliterate' ) ) - { - $str = transliterator_transliterate( 'Accents-Any', $str ); - } - else - { - $str = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $str); - } - - $str = preg_replace( "/[^a-zA-Z0-9\.\[\]_| -]/", '', $str ); - } - - $str=str_replace(array('"',"'","/","\\"),"",$str); - $str=strip_tags($str); - - // Empty or incorrectly transliterated filename. - // Here is a point: a good file UNKNOWN_LANGUAGE.jpg could become .jpg in previous code. - // So we add that default 'file' name to fix that issue. - if( strpos( $str, '.' ) === 0 ) - { - $str = 'file'.$str; - } - - return trim( $str ); -} - -function fix_dirname($str){ - return str_replace('~',' ',dirname(str_replace(' ','~',$str))); -} - -function fix_strtoupper($str){ - if( function_exists( 'mb_strtoupper' ) ) - return mb_strtoupper($str); - else - return strtoupper($str); -} - - -function fix_strtolower($str){ - if( function_exists( 'mb_strtoupper' ) ) - return mb_strtolower($str); - else - return strtolower($str); -} - -function fix_path($path,$transliteration){ - $info=pathinfo($path); - $tmp_path = $info['dirname']; - $str=fix_filename($info['filename'],$transliteration); - if($tmp_path!="") - return $tmp_path.DIRECTORY_SEPARATOR.$str; - else - return $str; -} - -function base_url(){ - return sprintf( - "%s://%s", - isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http', - $_SERVER['HTTP_HOST'] - ); -} - -function config_loading($current_path,$fld){ - if(file_exists($current_path.$fld.".config")){ - require_once($current_path.$fld.".config"); - return true; - } - echo "!!!!".$parent=fix_dirname($fld); - if($parent!="." && !empty($parent)){ - config_loading($current_path,$parent); - } - - return false; -} - - -function image_check_memory_usage($img, $max_breedte, $max_hoogte){ - if(file_exists($img)){ - $K64 = 65536; // number of bytes in 64K - $memory_usage = memory_get_usage(); - $memory_limit = abs(intval(str_replace('M','',ini_get('memory_limit'))*1024*1024)); - $image_properties = getimagesize($img); - $image_width = $image_properties[0]; - $image_height = $image_properties[1]; - $image_bits = $image_properties['bits']; - $image_memory_usage = $K64 + ($image_width * $image_height * ($image_bits ) * 2); - $thumb_memory_usage = $K64 + ($max_breedte * $max_hoogte * ($image_bits ) * 2); - $memory_needed = intval($memory_usage + $image_memory_usage + $thumb_memory_usage); - - if($memory_needed > $memory_limit){ - ini_set('memory_limit',(intval($memory_needed/1024/1024)+5) . 'M'); - if(ini_get('memory_limit') == (intval($memory_needed/1024/1024)+5) . 'M'){ - return true; - }else{ - return false; - } - }else{ - return true; - } - }else{ - return false; - } -} - -function endsWith($haystack, $needle) -{ - return $needle === "" || substr($haystack, -strlen($needle)) === $needle; -} - -function new_thumbnails_creation($targetPath,$targetFile,$name,$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height){ - //create relative thumbs - $all_ok=true; - if($relative_image_creation){ - foreach($relative_path_from_current_pos as $k=>$path){ - if($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - if (!file_exists($targetPath.$path)) create_folder($targetPath.$path,false); - $info=pathinfo($name); - if(!endsWith($targetPath,$path)) - if(!create_img($targetFile, $targetPath.$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension'], $relative_image_creation_width[$k], $relative_image_creation_height[$k])) - $all_ok=false; - } - } - - //create fixed thumbs - if($fixed_image_creation){ - foreach($fixed_path_from_filemanager as $k=>$path){ - if($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - $base_dir=$path.substr_replace($targetPath, '', 0, strlen($current_path)); - if (!file_exists($base_dir)) create_folder($base_dir,false); - $info=pathinfo($name); - if(!create_img($targetFile, $base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'], $fixed_image_creation_width[$k], $fixed_image_creation_height[$k])) - $all_ok=false; - } - } - return $all_ok; -} - - -// Get a remote file, using whichever mechanism is enabled -function get_file_by_url($url) { - if (ini_get('allow_url_fopen')) { - return file_get_contents($url); - } - if (!function_exists('curl_version')) { - return false; - } - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_HEADER, 0); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_URL, $url); - - $data = curl_exec($ch); - curl_close($ch); - - return $data; -} - -// test for dir/file writability properly -function is_really_writable($dir){ - $dir = rtrim($dir, '/'); - // linux, safe off - if (DIRECTORY_SEPARATOR == '/' && @ini_get("safe_mode") == FALSE){ - return is_writable($dir); - } - - // Windows, safe ON. (have to write a file :S) - if (is_dir($dir)){ - $dir = $dir.'/'.md5(mt_rand(1,1000).mt_rand(1,1000)); - - if (($fp = @fopen($dir, 'ab')) === FALSE){ - return FALSE; - } - - fclose($fp); - @chmod($dir, 0777); - @unlink($dir); - return TRUE; - } - elseif ( ! is_file($dir) || ($fp = @fopen($dir, 'ab')) === FALSE){ - return FALSE; - } - - fclose($fp); - return TRUE; -} - -/** - * Check if a function is callable. - * Some servers disable copy,rename etc. - * - * Returns TRUE if callable and everything is OK - * Otherwise returns FALSE - */ -function is_function_callable($name){ - if (function_exists($name) === FALSE) return FALSE; - $disabled = explode(',', ini_get('disable_functions')); - return !in_array($name, $disabled); -} - -// recursivly copies everything -function rcopy($source, $destination, $is_rec = FALSE) { - if (is_dir($source)) { - if ($is_rec === FALSE){ - $pinfo = pathinfo($source); - $destination = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - if (is_dir($destination) === FALSE){ - mkdir($destination, 0777, true); - } - - $files = scandir($source); - foreach ($files as $file){ - if ($file != "." && $file != "..") { - rcopy($source.DIRECTORY_SEPARATOR.$file, rtrim($destination, '/').DIRECTORY_SEPARATOR.$file, TRUE); - } - } - } - else { - if (file_exists($source)){ - if (is_dir($destination) === TRUE){ - $pinfo = pathinfo($source); - $dest2 = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - else { - $dest2 = $destination; - } - - copy($source, $dest2); - } - } -} - -// recursivly renames everything -// I know copy and rename could be done with just one function -// but i split the 2 because sometimes rename fails on windows -// Need more feedback from users and refactor if needed -function rrename($source, $destination, $is_rec = FALSE) { - if (is_dir($source)) { - if ($is_rec === FALSE){ - $pinfo = pathinfo($source); - $destination = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - if (is_dir($destination) === FALSE){ - mkdir($destination, 0777, true); - } - - $files = scandir($source); - foreach ($files as $file){ - if ($file != "." && $file != "..") { - rrename($source.DIRECTORY_SEPARATOR.$file, rtrim($destination, '/').DIRECTORY_SEPARATOR.$file, TRUE); - } - } - } - else { - if (file_exists($source)){ - if (is_dir($destination) === TRUE){ - $pinfo = pathinfo($source); - $dest2 = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - else { - $dest2 = $destination; - } - - rename($source, $dest2); - } - } -} - -// On windows rename leaves folders sometime -// This will clear leftover folders -// After more feedback will merge it with rrename -function rrename_after_cleaner($source) { - $files = scandir($source); - - foreach ($files as $file) { - if ($file != "." && $file != "..") { - if (is_dir($source.DIRECTORY_SEPARATOR.$file)){ - rrename_after_cleaner($source.DIRECTORY_SEPARATOR.$file); - } - else { - unlink($source.DIRECTORY_SEPARATOR.$file); - } - } - } - - return rmdir($source); -} - -function debugger($input, $trace = FALSE, $halt = FALSE){ - ob_start(); - - echo "
----- DEBUG DUMP -----"; - echo "
";
-    var_dump($input);
-    echo "
"; - - if ($trace){ - $debug = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - - echo "
-----STACK TRACE-----"; - echo "
";
-        var_dump($debug);
-        echo "
"; - } - - echo ""; - echo "---------------------------
"; - - $ret = ob_get_contents(); - ob_end_clean(); - - echo $ret; - - if ($halt == TRUE){ - exit(); - } -} - -?> \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf deleted file mode 100644 index 85c0ba38..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jplayer.playlist.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jplayer.playlist.min.js deleted file mode 100644 index 138ccfa5..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jplayer.playlist.min.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Playlist Object for the jPlayer Plugin - * http://www.jplayer.org - * - * Copyright (c) 2009 - 2013 Happyworm Ltd - * Dual licensed under the MIT and GPL licenses. - * - http://www.opensource.org/licenses/mit-license.php - * - http://www.gnu.org/copyleft/gpl.html - * - * Author: Mark J Panaghiston - * Version: 2.3.0 - * Date: 20th April 2013 - * - * Requires: - * - jQuery 1.7.0+ - * - jPlayer 2.3.0+ - */ -(function(b,f){jPlayerPlaylist=function(a,c,d){var e=this;this.current=0;this.removing=this.shuffled=this.loop=!1;this.cssSelector=b.extend({},this._cssSelector,a);this.options=b.extend(!0,{keyBindings:{next:{key:39,fn:function(){e.next()}},previous:{key:37,fn:function(){e.previous()}}}},this._options,d);this.playlist=[];this.original=[];this._initPlaylist(c);this.cssSelector.title=this.cssSelector.cssSelectorAncestor+" .jp-title";this.cssSelector.playlist=this.cssSelector.cssSelectorAncestor+" .jp-playlist"; -this.cssSelector.next=this.cssSelector.cssSelectorAncestor+" .jp-next";this.cssSelector.previous=this.cssSelector.cssSelectorAncestor+" .jp-previous";this.cssSelector.shuffle=this.cssSelector.cssSelectorAncestor+" .jp-shuffle";this.cssSelector.shuffleOff=this.cssSelector.cssSelectorAncestor+" .jp-shuffle-off";this.options.cssSelectorAncestor=this.cssSelector.cssSelectorAncestor;this.options.repeat=function(a){e.loop=a.jPlayer.options.loop};b(this.cssSelector.jPlayer).bind(b.jPlayer.event.ready,function(){e._init()}); -b(this.cssSelector.jPlayer).bind(b.jPlayer.event.ended,function(){e.next()});b(this.cssSelector.jPlayer).bind(b.jPlayer.event.play,function(){b(this).jPlayer("pauseOthers")});b(this.cssSelector.jPlayer).bind(b.jPlayer.event.resize,function(a){a.jPlayer.options.fullScreen?b(e.cssSelector.title).show():b(e.cssSelector.title).hide()});b(this.cssSelector.previous).click(function(){e.previous();b(this).blur();return!1});b(this.cssSelector.next).click(function(){e.next();b(this).blur();return!1});b(this.cssSelector.shuffle).click(function(){e.shuffle(!0); -return!1});b(this.cssSelector.shuffleOff).click(function(){e.shuffle(!1);return!1}).hide();this.options.fullScreen||b(this.cssSelector.title).hide();b(this.cssSelector.playlist+" ul").empty();this._createItemHandlers();b(this.cssSelector.jPlayer).jPlayer(this.options)};jPlayerPlaylist.prototype={_cssSelector:{jPlayer:"#jquery_jplayer_1",cssSelectorAncestor:"#jp_container_1"},_options:{playlistOptions:{autoPlay:!1,loopOnPrevious:!1,shuffleOnLoop:!0,enableRemoveControls:!1,displayTime:"slow",addTime:"fast", -removeTime:"fast",shuffleTime:"slow",itemClass:"jp-playlist-item",freeGroupClass:"jp-free-media",freeItemClass:"jp-playlist-item-free",removeItemClass:"jp-playlist-item-remove"}},option:function(a,b){if(b===f)return this.options.playlistOptions[a];this.options.playlistOptions[a]=b;switch(a){case "enableRemoveControls":this._updateControls();break;case "itemClass":case "freeGroupClass":case "freeItemClass":case "removeItemClass":this._refresh(!0),this._createItemHandlers()}return this},_init:function(){var a= -this;this._refresh(function(){a.options.playlistOptions.autoPlay?a.play(a.current):a.select(a.current)})},_initPlaylist:function(a){this.current=0;this.removing=this.shuffled=!1;this.original=b.extend(!0,[],a);this._originalPlaylist()},_originalPlaylist:function(){var a=this;this.playlist=[];b.each(this.original,function(b){a.playlist[b]=a.original[b]})},_refresh:function(a){var c=this;if(a&&!b.isFunction(a))b(this.cssSelector.playlist+" ul").empty(),b.each(this.playlist,function(a){b(c.cssSelector.playlist+ -" ul").append(c._createListItem(c.playlist[a]))}),this._updateControls();else{var d=b(this.cssSelector.playlist+" ul").children().length?this.options.playlistOptions.displayTime:0;b(this.cssSelector.playlist+" ul").slideUp(d,function(){var d=b(this);b(this).empty();b.each(c.playlist,function(a){d.append(c._createListItem(c.playlist[a]))});c._updateControls();b.isFunction(a)&&a();c.playlist.length?b(this).slideDown(c.options.playlistOptions.displayTime):b(this).show()})}},_createListItem:function(a){var c= -this,d="
  • ",d=d+("×");if(a.free){var e=!0,d=d+("(");b.each(a,function(a,f){b.jPlayer.prototype.format[a]&&(e?e=!1:d+=" | ",d+=""+a+"")});d+=")"}d+=""+a.title+(a.artist? -" ":"")+"";return d+="
  • "},_createItemHandlers:function(){var a=this;b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.itemClass).on("click","a."+this.options.playlistOptions.itemClass,function(){var c=b(this).parent().parent().index();a.current!==c?a.play(c):b(a.cssSelector.jPlayer).jPlayer("play");b(this).blur();return!1});b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.freeItemClass).on("click", -"a."+this.options.playlistOptions.freeItemClass,function(){b(this).parent().parent().find("."+a.options.playlistOptions.itemClass).click();b(this).blur();return!1});b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.removeItemClass).on("click","a."+this.options.playlistOptions.removeItemClass,function(){var c=b(this).parent().parent().index();a.remove(c);b(this).blur();return!1})},_updateControls:function(){this.options.playlistOptions.enableRemoveControls?b(this.cssSelector.playlist+ -" ."+this.options.playlistOptions.removeItemClass).show():b(this.cssSelector.playlist+" ."+this.options.playlistOptions.removeItemClass).hide();this.shuffled?(b(this.cssSelector.shuffleOff).show(),b(this.cssSelector.shuffle).hide()):(b(this.cssSelector.shuffleOff).hide(),b(this.cssSelector.shuffle).show())},_highlight:function(a){this.playlist.length&&a!==f&&(b(this.cssSelector.playlist+" .jp-playlist-current").removeClass("jp-playlist-current"),b(this.cssSelector.playlist+" li:nth-child("+(a+1)+ -")").addClass("jp-playlist-current").find(".jp-playlist-item").addClass("jp-playlist-current"),b(this.cssSelector.title+" li").html(this.playlist[a].title+(this.playlist[a].artist?" ":"")))},setPlaylist:function(a){this._initPlaylist(a);this._init()},add:function(a,c){b(this.cssSelector.playlist+" ul").append(this._createListItem(a)).find("li:last-child").hide().slideDown(this.options.playlistOptions.addTime);this._updateControls();this.original.push(a); -this.playlist.push(a);c?this.play(this.playlist.length-1):1===this.original.length&&this.select(0)},remove:function(a){var c=this;if(a===f)return this._initPlaylist([]),this._refresh(function(){b(c.cssSelector.jPlayer).jPlayer("clearMedia")}),!0;if(this.removing)return!1;a=0>a?c.original.length+a:a;0<=a&&aa?this.original.length+a:a;0<=a&&aa?this.original.length+a:a;0<=a&&a' + (config.visible ? "Hide" : "Show") + ' jPlayer Inspector

    ' - + '
    ' - + '
    ' - + '
    ' - + '

    jPlayer events that have occurred over the past 1 second:' - + '
    (Backgrounds: Never occurred Occurred before Occurred Multiple occurrences reset)

    '; - - // MJP: Would use the next 3 lines for ease, but the events are just slapped on the page. - // $.each($.jPlayer.event, function(eventName,eventType) { - // structure += '
    ' + eventName + '
    '; - // }); - - var eventStyle = "float:left;margin:0 5px 5px 0;padding:0 5px;border:1px dotted #000;"; - // MJP: Doing it longhand so order and layout easier to control. - structure += - '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    '; - - // MJP: Would like a check here in case we missed an event. - - // MJP: Check fails, since it is not on the page yet. -/* $.each($.jPlayer.event, function(eventName,eventType) { - if($("#" + config.eventId[eventType])[0] === undefined) { - structure += '
    ' + eventName + '
    '; - } - }); -*/ - structure += - '
    ' - + '

    Update jPlayer Inspector

    ' - + '
    ' - + '
    '; - $(this).html(structure); - - config.windowJq = $("#" + config.windowId); - config.statusJq = $("#" + config.statusId); - config.configJq = $("#" + config.configId); - config.toggleJq = $("#" + config.toggleId); - config.eventResetJq = $("#" + config.eventResetId); - config.updateJq = $("#" + config.updateId); - - $.each($.jPlayer.event, function(eventName,eventType) { - config.eventJq[eventType] = $("#" + config.eventId[eventType]); - config.eventJq[eventType].text(eventName + " (" + config.eventOccurrence[eventType] + ")"); // Sets the text to the event name and (0); - - config.jPlayer.bind(eventType + ".jPlayerInspector", function(e) { - config.eventOccurrence[e.type]++; - if(config.eventOccurrence[e.type] > 1) { - config.eventJq[e.type].css("background-color","#ff9"); - } else { - config.eventJq[e.type].css("background-color","#9f9"); - } - config.eventJq[e.type].text(eventName + " (" + config.eventOccurrence[e.type] + ")"); - // The timer to handle the color - clearTimeout(config.eventTimeout[e.type]); - config.eventTimeout[e.type] = setTimeout(function() { - config.eventJq[e.type].css("background-color","#fff"); - }, 1000); - // The timer to handle the occurences. - setTimeout(function() { - config.eventOccurrence[e.type]--; - config.eventJq[e.type].text(eventName + " (" + config.eventOccurrence[e.type] + ")"); - }, 1000); - if(config.visible) { // Update the status, if inspector open. - $this.jPlayerInspector("updateStatus"); - } - }); - }); - - config.jPlayer.bind($.jPlayer.event.ready + ".jPlayerInspector", function(e) { - $this.jPlayerInspector("updateConfig"); - }); - - config.toggleJq.click(function() { - if(config.visible) { - $(this).text("Show"); - config.windowJq.hide(); - config.statusJq.empty(); - config.configJq.empty(); - } else { - $(this).text("Hide"); - config.windowJq.show(); - config.updateJq.click(); - } - config.visible = !config.visible; - $(this).blur(); - return false; - }); - - config.eventResetJq.click(function() { - $.each($.jPlayer.event, function(eventName,eventType) { - config.eventJq[eventType].css("background-color","#eee"); - }); - $(this).blur(); - return false; - }); - - config.updateJq.click(function() { - $this.jPlayerInspector("updateStatus"); - $this.jPlayerInspector("updateConfig"); - return false; - }); - - if(!config.visible) { - config.windowJq.hide(); - } else { - // config.updateJq.click(); - } - - $.jPlayerInspector.i++; - - return this; - }, - destroy: function() { - $(this).data("jPlayerInspector") && $(this).data("jPlayerInspector").jPlayer.unbind(".jPlayerInspector"); - $(this).empty(); - }, - updateConfig: function() { // This displays information about jPlayer's configuration in inspector - - var jPlayerInfo = "

    This jPlayer instance is running in your browser where:
    " - - for(i = 0; i < $(this).data("jPlayerInspector").jPlayer.data("jPlayer").solutions.length; i++) { - var solution = $(this).data("jPlayerInspector").jPlayer.data("jPlayer").solutions[i]; - jPlayerInfo += " jPlayer's " + solution + " solution is"; - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].used) { - jPlayerInfo += " being used and will support:"; - for(format in $(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].support) { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].support[format]) { - jPlayerInfo += " " + format; - } - } - jPlayerInfo += "
    "; - } else { - jPlayerInfo += " not required
    "; - } - } - jPlayerInfo += "

    "; - - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.active) { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").flash.active) { - jPlayerInfo += "Problem with jPlayer since both HTML5 and Flash are active."; - } else { - jPlayerInfo += "The HTML5 is active."; - } - } else { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").flash.active) { - jPlayerInfo += "The Flash is active."; - } else { - jPlayerInfo += "No solution is currently active. jPlayer needs a setMedia()."; - } - } - jPlayerInfo += "

    "; - - var formatType = $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.formatType; - jPlayerInfo += "

    status.formatType = '" + formatType + "'
    "; - if(formatType) { - jPlayerInfo += "Browser canPlay('" + $.jPlayer.prototype.format[formatType].codec + "')"; - } else { - jPlayerInfo += "

    "; - } - - jPlayerInfo += "

    status.src = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.src + "'

    "; - - jPlayerInfo += "

    status.media = {
    "; - for(prop in $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.media) { - jPlayerInfo += " " + prop + ": " + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.media[prop] + "
    "; // Some are strings - } - jPlayerInfo += "};

    " - - jPlayerInfo += "

    "; - jPlayerInfo += "status.videoWidth = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.videoWidth + "'"; - jPlayerInfo += " | status.videoHeight = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.videoHeight + "'"; - jPlayerInfo += "
    status.width = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.width + "'"; - jPlayerInfo += " | status.height = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.height + "'"; - jPlayerInfo += "

    "; - - + "

    Raw browser test for HTML5 support. Should equal a function if HTML5 is available.
    "; - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.audio.available) { - jPlayerInfo += "htmlElement.audio.canPlayType = " + (typeof $(this).data("jPlayerInspector").jPlayer.data("jPlayer").htmlElement.audio.canPlayType) +"
    " - } - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.video.available) { - jPlayerInfo += "htmlElement.video.canPlayType = " + (typeof $(this).data("jPlayerInspector").jPlayer.data("jPlayer").htmlElement.video.canPlayType) +""; - } - jPlayerInfo += "

    "; - - jPlayerInfo += "

    This instance is using the constructor options:
    " - + "$('#" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").internal.self.id + "').jPlayer({
    " - - + " swfPath: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "swfPath") + "',
    " - - + " solution: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "solution") + "',
    " - - + " supplied: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "supplied") + "',
    " - - + " preload: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "preload") + "',
    " - - + " volume: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "volume") + ",
    " - - + " muted: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "muted") + ",
    " - - + " backgroundColor: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "backgroundColor") + "',
    " - - + " cssSelectorAncestor: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelectorAncestor") + "',
    " - - + " cssSelector: {"; - - var cssSelector = $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelector"); - for(prop in cssSelector) { - - // jPlayerInfo += "
      " + prop + ": '" + cssSelector[prop] + "'," // This works too of course, but want to use option method for deep keys. - jPlayerInfo += "
      " + prop + ": '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelector." + prop) + "'," - } - - jPlayerInfo = jPlayerInfo.slice(0, -1); // Because the sloppy comma was bugging me. - - jPlayerInfo += "
     },
    " - - + " errorAlerts: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "errorAlerts") + ",
    " - - + " warningAlerts: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "warningAlerts") + "
    " - - + "});

    "; - $(this).data("jPlayerInspector").configJq.html(jPlayerInfo); - return this; - }, - updateStatus: function() { // This displays information about jPlayer's status in the inspector - $(this).data("jPlayerInspector").statusJq.html( - "

    jPlayer is " + - ($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.paused ? "paused" : "playing") + - " at time: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentTime*10)/10 + "s." + - " (d: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.duration*10)/10 + "s" + - ", sp: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.seekPercent) + "%" + - ", cpr: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentPercentRelative) + "%" + - ", cpa: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentPercentAbsolute) + "%)

    " - ); - return this; - } - }; - $.fn.jPlayerInspector = function( method ) { - // Method calling logic - if ( methods[method] ) { - return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof method === 'object' || ! method ) { - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + method + ' does not exist on jQuery.jPlayerInspector' ); - } - }; -})(jQuery); diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js deleted file mode 100644 index ecd3ab51..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * jPlayer Plugin for jQuery JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2009 - 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Mark J Panaghiston - * Version: 2.4.0 - * Date: 5th June 2013 - */ - -(function(b,f){"function"===typeof define&&define.amd?define(["jquery"],f):b.jQuery?f(b.jQuery):f(b.Zepto)})(this,function(b,f){b.fn.jPlayer=function(a){var c="string"===typeof a,d=Array.prototype.slice.call(arguments,1),e=this;a=!c&&d.length?b.extend.apply(null,[!0,a].concat(d)):a;if(c&&"_"===a.charAt(0))return e;c?this.each(function(){var c=b(this).data("jPlayer"),h=c&&b.isFunction(c[a])?c[a].apply(c,d):c;if(h!==c&&h!==f)return e=h,!1}):this.each(function(){var c=b(this).data("jPlayer");c?c.option(a|| -{}):b(this).data("jPlayer",new b.jPlayer(a,this))});return e};b.jPlayer=function(a,c){if(arguments.length){this.element=b(c);this.options=b.extend(!0,{},this.options,a);var d=this;this.element.bind("remove.jPlayer",function(){d.destroy()});this._init()}};"function"!==typeof b.fn.stop&&(b.fn.stop=function(){});b.jPlayer.emulateMethods="load play pause";b.jPlayer.emulateStatus="src readyState networkState currentTime duration paused ended playbackRate";b.jPlayer.emulateOptions="muted volume";b.jPlayer.reservedEvent= -"ready flashreset resize repeat error warning";b.jPlayer.event={};b.each("ready flashreset resize repeat click error warning loadstart progress suspend abort emptied stalled play pause loadedmetadata loadeddata waiting playing canplay canplaythrough seeking seeked timeupdate ended ratechange durationchange volumechange".split(" "),function(){b.jPlayer.event[this]="jPlayer_"+this});b.jPlayer.htmlEvent="loadstart abort emptied stalled loadedmetadata loadeddata canplay canplaythrough ratechange".split(" "); -b.jPlayer.pause=function(){b.each(b.jPlayer.prototype.instances,function(a,c){c.data("jPlayer").status.srcSet&&c.jPlayer("pause")})};b.jPlayer.timeFormat={showHour:!1,showMin:!0,showSec:!0,padHour:!1,padMin:!0,padSec:!0,sepHour:":",sepMin:":",sepSec:""};var l=function(){this.init()};l.prototype={init:function(){this.options={timeFormat:b.jPlayer.timeFormat}},time:function(a){var c=new Date(1E3*(a&&"number"===typeof a?a:0)),b=c.getUTCHours();a=this.options.timeFormat.showHour?c.getUTCMinutes():c.getUTCMinutes()+ -60*b;c=this.options.timeFormat.showMin?c.getUTCSeconds():c.getUTCSeconds()+60*a;b=this.options.timeFormat.padHour&&10>b?"0"+b:b;a=this.options.timeFormat.padMin&&10>a?"0"+a:a;c=this.options.timeFormat.padSec&&10>c?"0"+c:c;b=""+(this.options.timeFormat.showHour?b+this.options.timeFormat.sepHour:"");b+=this.options.timeFormat.showMin?a+this.options.timeFormat.sepMin:"";return b+=this.options.timeFormat.showSec?c+this.options.timeFormat.sepSec:""}};var m=new l;b.jPlayer.convertTime=function(a){return m.time(a)}; -b.jPlayer.uaBrowser=function(a){a=a.toLowerCase();var b=/(opera)(?:.*version)?[ \/]([\w.]+)/,d=/(msie) ([\w.]+)/,e=/(mozilla)(?:.*? rv:([\w.]+))?/;a=/(webkit)[ \/]([\w.]+)/.exec(a)||b.exec(a)||d.exec(a)||0>a.indexOf("compatible")&&e.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}};b.jPlayer.uaPlatform=function(a){var b=a.toLowerCase(),d=/(android)/,e=/(mobile)/;a=/(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/.exec(b)||[];b=/(ipad|playbook)/.exec(b)||!e.exec(b)&&d.exec(b)|| -[];a[1]&&(a[1]=a[1].replace(/\s/g,"_"));return{platform:a[1]||"",tablet:b[1]||""}};b.jPlayer.browser={};b.jPlayer.platform={};var j=b.jPlayer.uaBrowser(navigator.userAgent);j.browser&&(b.jPlayer.browser[j.browser]=!0,b.jPlayer.browser.version=j.version);j=b.jPlayer.uaPlatform(navigator.userAgent);j.platform&&(b.jPlayer.platform[j.platform]=!0,b.jPlayer.platform.mobile=!j.tablet,b.jPlayer.platform.tablet=!!j.tablet);b.jPlayer.getDocMode=function(){var a;b.jPlayer.browser.msie&&(document.documentMode? -a=document.documentMode:(a=5,document.compatMode&&"CSS1Compat"===document.compatMode&&(a=7)));return a};b.jPlayer.browser.documentMode=b.jPlayer.getDocMode();b.jPlayer.nativeFeatures={init:function(){var a=document,b=a.createElement("video"),d={w3c:"fullscreenEnabled fullscreenElement requestFullscreen exitFullscreen fullscreenchange fullscreenerror".split(" "),moz:"mozFullScreenEnabled mozFullScreenElement mozRequestFullScreen mozCancelFullScreen mozfullscreenchange mozfullscreenerror".split(" "), -webkit:" webkitCurrentFullScreenElement webkitRequestFullScreen webkitCancelFullScreen webkitfullscreenchange ".split(" "),webkitVideo:"webkitSupportsFullscreen webkitDisplayingFullscreen webkitEnterFullscreen webkitExitFullscreen ".split(" ")},e=["w3c","moz","webkit","webkitVideo"],g,h;this.fullscreen=b={support:{w3c:!!a[d.w3c[0]],moz:!!a[d.moz[0]],webkit:"function"===typeof a[d.webkit[3]],webkitVideo:"function"===typeof b[d.webkitVideo[2]]},used:{}};g=0;for(h=e.length;g','','','',''];c=document.createElement(''); -for(var e=0;e=a&&(b=!0);return b},_validString:function(a){return a&&"string"===typeof a},_limitValue:function(a,b,d){return ad?d:a},_urlNotSetError:function(a){this._error({type:b.jPlayer.error.URL_NOT_SET,context:a,message:b.jPlayer.errorMsg.URL_NOT_SET,hint:b.jPlayer.errorHint.URL_NOT_SET})},_flashError:function(a){var c;c=this.internal.ready?"FLASH_DISABLED":"FLASH";this._error({type:b.jPlayer.error[c],context:this.internal.flash.swf, -message:b.jPlayer.errorMsg[c]+a.message,hint:b.jPlayer.errorHint[c]});this.internal.flash.jq.css({width:"1px",height:"1px"})},_error:function(a){this._trigger(b.jPlayer.event.error,a);this.options.errorAlerts&&this._alert("Error!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+a.context)},_warning:function(a){this._trigger(b.jPlayer.event.warning,f,a);this.options.warningAlerts&&this._alert("Warning!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+ -a.context)},_alert:function(a){alert("jPlayer "+this.version.script+" : id='"+this.internal.self.id+"' : "+a)},_emulateHtmlBridge:function(){var a=this;b.each(b.jPlayer.emulateMethods.split(/\s+/g),function(b,d){a.internal.domNode[d]=function(b){a[d](b)}});b.each(b.jPlayer.event,function(c,d){var e=!0;b.each(b.jPlayer.reservedEvent.split(/\s+/g),function(a,b){if(b===c)return e=!1});e&&a.element.bind(d+".jPlayer.jPlayerHtml",function(){a._emulateHtmlUpdate();var b=document.createEvent("Event");b.initEvent(c, -!1,!0);a.internal.domNode.dispatchEvent(b)})})},_emulateHtmlUpdate:function(){var a=this;b.each(b.jPlayer.emulateStatus.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.status[d]});b.each(b.jPlayer.emulateOptions.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.options[d]})},_destroyHtmlBridge:function(){var a=this;this.element.unbind(".jPlayerHtml");b.each((b.jPlayer.emulateMethods+" "+b.jPlayer.emulateStatus+" "+b.jPlayer.emulateOptions).split(/\s+/g),function(b,d){delete a.internal.domNode[d]})}}; -b.jPlayer.error={FLASH:"e_flash",FLASH_DISABLED:"e_flash_disabled",NO_SOLUTION:"e_no_solution",NO_SUPPORT:"e_no_support",URL:"e_url",URL_NOT_SET:"e_url_not_set",VERSION:"e_version"};b.jPlayer.errorMsg={FLASH:"jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",FLASH_DISABLED:"jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ",NO_SOLUTION:"No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.", -NO_SUPPORT:"It is not possible to play any media format provided in setMedia() on this browser using your current options.",URL:"Media URL could not be loaded.",URL_NOT_SET:"Attempt to issue media playback commands, while no media url is set.",VERSION:"jPlayer "+b.jPlayer.prototype.version.script+" needs Jplayer.swf version "+b.jPlayer.prototype.version.needFlash+" but found "};b.jPlayer.errorHint={FLASH:"Check your swfPath option and that Jplayer.swf is there.",FLASH_DISABLED:"Check that you have not display:none; the jPlayer entity or any ancestor.", -NO_SOLUTION:"Review the jPlayer options: support and supplied.",NO_SUPPORT:"Video or audio formats defined in the supplied option are missing.",URL:"Check media URL is valid.",URL_NOT_SET:"Use setMedia() to set the media URL.",VERSION:"Update jPlayer files."};b.jPlayer.warning={CSS_SELECTOR_COUNT:"e_css_selector_count",CSS_SELECTOR_METHOD:"e_css_selector_method",CSS_SELECTOR_STRING:"e_css_selector_string",OPTION_KEY:"e_option_key"};b.jPlayer.warningMsg={CSS_SELECTOR_COUNT:"The number of css selectors found did not equal one: ", -CSS_SELECTOR_METHOD:"The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",CSS_SELECTOR_STRING:"The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",OPTION_KEY:"The option requested in jPlayer('option') is undefined."};b.jPlayer.warningHint={CSS_SELECTOR_COUNT:"Check your css selector and the ancestor.",CSS_SELECTOR_METHOD:"Check your method name.",CSS_SELECTOR_STRING:"Check your css selector is a string.",OPTION_KEY:"Check your option name."}}); \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js deleted file mode 100644 index fb57ac60..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js +++ /dev/null @@ -1,558 +0,0 @@ -/* - * jPlayer Player Plugin for Popcorn JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Mark J Panaghiston - * Version: 1.1.1 - * Date: 5th June 2013 - * - * For Popcorn Version: 1.3 - * For jPlayer Version: 2.4.0 - * Requires: jQuery 1.3.2+ - * Note: jQuery dependancy cannot be removed since jPlayer 2 is a jQuery plugin. Use of jQuery will be kept to a minimum. - */ - -/* Code verified using http://www.jshint.com/ */ -/*jshint asi:false, bitwise:false, boss:false, browser:true, curly:false, debug:false, eqeqeq:true, eqnull:false, evil:false, forin:false, immed:false, jquery:true, laxbreak:false, newcap:true, noarg:true, noempty:true, nonew:true, onevar:false, passfail:false, plusplus:false, regexp:false, undef:true, sub:false, strict:false, white:false, smarttabs:true */ -/*global Popcorn:false, console:false */ - -(function(Popcorn) { - - var JQUERY_SCRIPT = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js', // Used if jQuery not already present. - JPLAYER_SCRIPT = 'http://www.jplayer.org/2.4.0/js/jquery.jplayer.min.js', // Used if jPlayer not already present. - JPLAYER_SWFPATH = 'http://www.jplayer.org/2.4.0/js/Jplayer.swf', // Used if not specified in jPlayer options via SRC Object. - SOLUTION = 'html,flash', // The default solution option. - DEBUG = false, // Decided to leave the debugging option and console output in for the time being. Overhead is trivial. - jQueryDownloading = false, // Flag to stop multiple instances from each pulling in jQuery, thus corrupting it. - jPlayerDownloading = false, // Flag to stop multiple instances from each pulling in jPlayer, thus corrupting it. - format = { // Duplicate of jPlayer 2.4.0 object, to avoid always requiring jQuery and jPlayer to be loaded before performing the _canPlayType() test. - mp3: { - codec: 'audio/mpeg; codecs="mp3"', - flashCanPlay: true, - media: 'audio' - }, - m4a: { // AAC / MP4 - codec: 'audio/mp4; codecs="mp4a.40.2"', - flashCanPlay: true, - media: 'audio' - }, - oga: { // OGG - codec: 'audio/ogg; codecs="vorbis"', - flashCanPlay: false, - media: 'audio' - }, - wav: { // PCM - codec: 'audio/wav; codecs="1"', - flashCanPlay: false, - media: 'audio' - }, - webma: { // WEBM - codec: 'audio/webm; codecs="vorbis"', - flashCanPlay: false, - media: 'audio' - }, - fla: { // FLV / F4A - codec: 'audio/x-flv', - flashCanPlay: true, - media: 'audio' - }, - rtmpa: { // RTMP AUDIO - codec: 'audio/rtmp; codecs="rtmp"', - flashCanPlay: true, - media: 'audio' - }, - m4v: { // H.264 / MP4 - codec: 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', - flashCanPlay: true, - media: 'video' - }, - ogv: { // OGG - codec: 'video/ogg; codecs="theora, vorbis"', - flashCanPlay: false, - media: 'video' - }, - webmv: { // WEBM - codec: 'video/webm; codecs="vorbis, vp8"', - flashCanPlay: false, - media: 'video' - }, - flv: { // FLV / F4V - codec: 'video/x-flv', - flashCanPlay: true, - media: 'video' - }, - rtmpv: { // RTMP VIDEO - codec: 'video/rtmp; codecs="rtmp"', - flashCanPlay: true, - media: 'video' - } - }, - isObject = function(val) { // Basic check for Object - if(val && typeof val === 'object' && val.hasOwnProperty) { - return true; - } else { - return false; - } - }, - getMediaType = function(url) { // Function to gleam the media type from the URL - var mediaType = false; - if(/\.mp3$/i.test(url)) { - mediaType = 'mp3'; - } else if(/\.mp4$/i.test(url) || /\.m4v$/i.test(url)) { - mediaType = 'm4v'; - } else if(/\.m4a$/i.test(url)) { - mediaType = 'm4a'; - } else if(/\.ogg$/i.test(url) || /\.oga$/i.test(url)) { - mediaType = 'oga'; - } else if(/\.ogv$/i.test(url)) { - mediaType = 'ogv'; - } else if(/\.webm$/i.test(url)) { - mediaType = 'webmv'; - } - return mediaType; - }, - getSupplied = function(url) { // Function to generate a supplied option from an src object. ie., When supplied not specified. - var supplied = '', - separator = ''; - if(isObject(url)) { - // Generate supplied option from object's properties. Non-format properties would be ignored by jPlayer. Order is unpredictable. - for(var prop in url) { - if(url.hasOwnProperty(prop)) { - supplied += separator + prop; - separator = ','; - } - } - } - if(DEBUG) console.log('getSupplied(): Generated: supplied = "' + supplied + '"'); - return supplied; - }; - - Popcorn.player( 'jplayer', { - _canPlayType: function( containerType, url ) { - // url : Either a String or an Object structured similar a jPlayer media object. ie., As used by setMedia in jPlayer. - // The url object may also contain a solution and supplied property. - - // Define the src object structure here! - - var cType = containerType.toLowerCase(), - srcObj = { - media:{}, - options:{} - }, - rVal = false, // Only a boolean false means it is not supported. - mediaType; - - if(cType !== 'video' && cType !== 'audio') { - - if(typeof url === 'string') { - // Check it starts with http, so the URL is absolute... Well, it is not a perfect check. - if(/^http.*/i.test(url)) { - mediaType = getMediaType(url); - if(mediaType) { - srcObj.media[mediaType] = url; - srcObj.options.solution = SOLUTION; - srcObj.options.supplied = mediaType; - } - } - } else { - srcObj = url; // Assume the url is an src object. - } - - // Check for Object and appropriate minimum data structure. - if(isObject(srcObj) && isObject(srcObj.media)) { - - if(!isObject(srcObj.options)) { - srcObj.options = {}; - } - - if(!srcObj.options.solution) { - srcObj.options.solution = SOLUTION; - } - - if(!srcObj.options.supplied) { - srcObj.options.supplied = getSupplied(srcObj.media); - } - - // Figure out how jPlayer will play it. - // This may not work properly when both audio and video is supplied. ie., A media player. But it should return truethy and jPlayer can figure it out. - - var solution = srcObj.options.solution.toLowerCase().split(","), // Create the solution array, with prority based on the order of the solution string. - supplied = srcObj.options.supplied.toLowerCase().split(","); // Create the supplied formats array, with prority based on the order of the supplied formats string. - - for(var sol = 0; sol < solution.length; sol++) { - - var solutionType = solution[sol].replace(/^\s+|\s+$/g, ""), //trim - checkingHtml = solutionType === 'html', - checkingFlash = solutionType === 'flash', - mediaElem; - - for(var fmt = 0; fmt < supplied.length; fmt++) { - mediaType = supplied[fmt].replace(/^\s+|\s+$/g, ""); //trim - if(format[mediaType]) { // Check format is valid. - - // Create an HTML5 media element for the type of media. - if(!mediaElem && checkingHtml) { - mediaElem = document.createElement(format[mediaType].media); - } - // See if the HTML5 media element can play the MIME / Codec type. - // Flash also returns the object if the format is playable, so it is truethy, but that html property is false. - // This assumes Flash is available, but that should be dealt with by jPlayer if that happens. - var htmlCanPlay = !!(mediaElem && mediaElem.canPlayType && mediaElem.canPlayType(format[mediaType].codec)), - htmlWillPlay = htmlCanPlay && checkingHtml, - flashWillPlay = format[mediaType].flashCanPlay && checkingFlash; - // The first one found will match what jPlayer uses. - if(htmlWillPlay || flashWillPlay) { - rVal = { - html: htmlWillPlay, - type: mediaType - }; - sol = solution.length; // Exit solution loop - fmt = supplied.length; // Exit supplied loop - } - } - } - } - } - } - return rVal; - }, - // _setup: function( options ) { // Warning: options is deprecated. - _setup: function() { - var media = this, - myPlayer, // The jQuery selector of the jPlayer element. Usually a
    - jPlayerObj, // The jPlayer data instance. For performance and DRY code. - mediaType = 'unknown', - jpMedia = {}, - jpOptions = {}, - ready = false, // Used during init to override the annoying duration dependance in the track event padding during Popcorn's isReady(). ie., We is ready after loadeddata and duration can then be set real value at leisure. - duration = 0, // For the durationchange event with both HTML5 and Flash solutions. Used with 'ready' to keep control during the Popcorn isReady() via loadeddata event. (Duration=0 is bad.) - durationchangeId = null, // A timeout ID used with delayed durationchange event. (Because of the duration=NaN fudge to avoid Popcorn track event corruption.) - canplaythrough = false, - error = null, // The MediaError object. - - dispatchDurationChange = function() { - if(ready) { - if(DEBUG) console.log('Dispatched event : durationchange : ' + duration); - media.dispatchEvent('durationchange'); - } else { - if(DEBUG) console.log('DELAYED EVENT (!ready) : durationchange : ' + duration); - clearTimeout(durationchangeId); // Stop multiple triggers causing multiple timeouts running in parallel. - durationchangeId = setTimeout(dispatchDurationChange, 250); - } - }, - - jPlayerFlashEventsPatch = function() { - - /* Events already supported by jPlayer Flash: - * loadstart - * loadedmetadata (M4A, M4V) - * progress - * play - * pause - * seeking - * seeked - * timeupdate - * ended - * volumechange - * error <- See the custom handler in jPlayerInit() - */ - - /* Events patched: - * loadeddata - * durationchange - * canplaythrough - * playing - */ - - /* Events NOT patched: - * suspend - * abort - * emptied - * stalled - * loadedmetadata (MP3) - * waiting - * canplay - * ratechange - */ - - // Triggering patched events through the jPlayer Object so the events are homogeneous. ie., The contain the event.jPlayer data structure. - - var checkDuration = function(event) { - if(event.jPlayer.status.duration !== duration) { - duration = event.jPlayer.status.duration; - dispatchDurationChange(); - } - }, - - checkCanPlayThrough = function(event) { - if(!canplaythrough && event.jPlayer.status.seekPercent === 100) { - canplaythrough = true; - setTimeout(function() { - if(DEBUG) console.log('Trigger : canplaythrough'); - jPlayerObj._trigger($.jPlayer.event.canplaythrough); - }, 0); - } - }; - - myPlayer.bind($.jPlayer.event.loadstart, function() { - setTimeout(function() { - if(DEBUG) console.log('Trigger : loadeddata'); - jPlayerObj._trigger($.jPlayer.event.loadeddata); - }, 0); - }) - .bind($.jPlayer.event.progress, function(event) { - checkDuration(event); - checkCanPlayThrough(event); - }) - .bind($.jPlayer.event.timeupdate, function(event) { - checkDuration(event); - checkCanPlayThrough(event); - }) - .bind($.jPlayer.event.play, function() { - setTimeout(function() { - if(DEBUG) console.log('Trigger : playing'); - jPlayerObj._trigger($.jPlayer.event.playing); - }, 0); - }); - - if(DEBUG) console.log('Created CUSTOM event handlers for FLASH'); - }, - - jPlayerInit = function() { - (function($) { - - myPlayer = $('#' + media.id); - - if(typeof media.src === 'string') { - mediaType = getMediaType(media.src); - jpMedia[mediaType] = media.src; - jpOptions.supplied = mediaType; - jpOptions.solution = SOLUTION; - } else if(isObject(media.src)) { - jpMedia = isObject(media.src.media) ? media.src.media : {}; - jpOptions = isObject(media.src.options) ? media.src.options : {}; - jpOptions.solution = jpOptions.solution || SOLUTION; - jpOptions.supplied = jpOptions.supplied || getSupplied(media.src.media); - } - - // Allow the swfPath to be set to local server. ie., If the jPlayer Plugin is local and already on the page, then you can also use the local SWF. - jpOptions.swfPath = jpOptions.swfPath || JPLAYER_SWFPATH; - - myPlayer.bind($.jPlayer.event.ready, function(event) { - if(event.jPlayer.flash.used) { - jPlayerFlashEventsPatch(); - } - // Set the media andd load it, so that the Flash solution behaves similar to HTML5 solution. - // This also allows the loadstart event to be used to know jPlayer is ready. - $(this).jPlayer('setMedia', jpMedia).jPlayer('load'); - }); - - // Do not auto-bubble the reserved events, nor the loadeddata and durationchange event, since the duration must be carefully handled when loadeddata event occurs. - // See the duration property code for more details. (Ranting.) - - var reservedEvents = $.jPlayer.reservedEvent + ' loadeddata durationchange', - reservedEvent = reservedEvents.split(/\s+/g); - - // Generate event handlers for all the standard HTML5 media events. (Except durationchange) - - var bindEvent = function(name) { - myPlayer.bind($.jPlayer.event[name], function(event) { - if(DEBUG) console.log('Dispatched event: ' + name + (event && event.jPlayer ? ' (' + event.jPlayer.status.currentTime + 's)' : '')); // Must be after dispatch for some reason on Firefox/Opera - media.dispatchEvent(name); - }); - if(DEBUG) console.log('Created event handler for: ' + name); - }; - - for(var eventName in $.jPlayer.event) { - if($.jPlayer.event.hasOwnProperty(eventName)) { - var nativeEvent = true; - for(var iRes in reservedEvent) { - if(reservedEvent.hasOwnProperty(iRes)) { - if(reservedEvent[iRes] === eventName) { - nativeEvent = false; - break; - } - } - } - if(nativeEvent) { - bindEvent(eventName); - } else { - if(DEBUG) console.log('Skipped auto event handler creation for: ' + eventName); - } - } - } - - myPlayer.bind($.jPlayer.event.loadeddata, function(event) { - if(DEBUG) console.log('Dispatched event: loadeddata' + (event && event.jPlayer ? ' (' + event.jPlayer.status.currentTime + 's)' : '')); - media.dispatchEvent('loadeddata'); - ready = true; - }); - if(DEBUG) console.log('Created CUSTOM event handler for: loadeddata'); - - myPlayer.bind($.jPlayer.event.durationchange, function(event) { - duration = event.jPlayer.status.duration; - dispatchDurationChange(); - }); - if(DEBUG) console.log('Created CUSTOM event handler for: durationchange'); - - // The error event is a special case. Plus jPlayer error event assumes it is a broken URL. (It could also be a decoder error... Or aborted or a Network error.) - myPlayer.bind($.jPlayer.event.error, function(event) { - // Not sure how to handle the error situation. Popcorn does not appear to have the error or error.code property documented here: http://popcornjs.org/popcorn-docs/media-methods/ - // If any error event happens, then something has gone pear shaped. - - error = event.jPlayer.error; // Saving object pointer, not a copy of the object. Possible garbage collection issue... But the player is dead anyway, so don't care. - - if(error.type === $.jPlayer.error.URL) { - error.code = 4; // MEDIA_ERR_SRC_NOT_SUPPORTED since jPlayer makes this assumption. It is the most common error, then the decode error. Never seen either of the other 2 error types occur. - } else { - error.code = 0; // It was a jPlayer error, not an HTML5 media error. - } - - if(DEBUG) console.log('Dispatched event: error'); - if(DEBUG) console.dir(error); - media.dispatchEvent('error'); - }); - if(DEBUG) console.log('Created CUSTOM event handler for: error'); - - Popcorn.player.defineProperty( media, 'error', { - set: function() { - // Read-only property - return error; - }, - get: function() { - return error; - } - }); - - Popcorn.player.defineProperty( media, 'currentTime', { - set: function( val ) { - if(jPlayerObj.status.paused) { - myPlayer.jPlayer('pause', val); - } else { - myPlayer.jPlayer('play', val); - } - return val; - }, - get: function() { - return jPlayerObj.status.currentTime; - } - }); - - /* The joy of duration and the loadeddata event isReady() handler - * The duration is assumed to be a NaN or a valid duration. - * jPlayer uses zero instead of a NaN and this screws up the Popcorn track event start/end arrays padding. - * This line here: - * videoDurationPlus = duration != duration ? Number.MAX_VALUE : duration + 1; - * Not sure why it is not simply: - * videoDurationPlus = Number.MAX_VALUE; // Who cares if the padding is close to the real duration? - * So if you trigger loadeddata before the duration is correct, the track event padding is screwed up. (It pads the start, not the end... Well, duration+1 = 0+1 = 1s) - * That line makes the MP3 Flash fallback difficult to setup. The whole MP3 will need to load before the duration is known. - * Planning on using a NaN for duration until a >0 value is found... Except with MP3, where seekPercent must be 100% before setting the duration. - * Why not just use a NaN during init... And then correct the duration later? - */ - - Popcorn.player.defineProperty( media, 'duration', { - set: function() { - // Read-only property - if(ready) { - return duration; - } else { - return NaN; - } - }, - get: function() { - if(ready) { - return duration; // Popcorn has initialized, we can now use duration zero or whatever without fear. - } else { - return NaN; // Keep the duration a NaN until after loadeddata event has occurred. Otherwise Popcorn track event padding is corrupted. - } - } - }); - - Popcorn.player.defineProperty( media, 'muted', { - set: function( val ) { - myPlayer.jPlayer('mute', val); - return jPlayerObj.options.muted; - }, - get: function() { - return jPlayerObj.options.muted; - } - }); - - Popcorn.player.defineProperty( media, 'volume', { - set: function( val ) { - myPlayer.jPlayer('volume', val); - return jPlayerObj.options.volume; - }, - get: function() { - return jPlayerObj.options.volume; - } - }); - - Popcorn.player.defineProperty( media, 'paused', { - set: function() { - // Read-only property - return jPlayerObj.status.paused; - }, - get: function() { - return jPlayerObj.status.paused; - } - }); - - media.play = function() { - myPlayer.jPlayer('play'); - }; - media.pause = function() { - myPlayer.jPlayer('pause'); - }; - - myPlayer.jPlayer(jpOptions); // Instance jPlayer. Note that the options should not have a ready event defined... Kill it by default? - jPlayerObj = myPlayer.data('jPlayer'); - - }(jQuery)); - }, - - jPlayerCheck = function() { - if (!jQuery.jPlayer) { - if (!jPlayerDownloading) { - jPlayerDownloading = true; - Popcorn.getScript(JPLAYER_SCRIPT, function() { - jPlayerDownloading = false; - jPlayerInit(); - }); - } else { - setTimeout(jPlayerCheck, 250); - } - } else { - jPlayerInit(); - } - }, - - jQueryCheck = function() { - if (!window.jQuery) { - if (!jQueryDownloading) { - jQueryDownloading = true; - Popcorn.getScript(JQUERY_SCRIPT, function() { - jQueryDownloading = false; - jPlayerCheck(); - }); - } else { - setTimeout(jQueryCheck, 250); - } - } else { - jPlayerCheck(); - } - }; - - jQueryCheck(); - }, - _teardown: function() { - jQuery('#' + this.id).jPlayer('destroy'); - } - }); - -}(Popcorn)); \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css deleted file mode 100644 index f71520d6..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css +++ /dev/null @@ -1,640 +0,0 @@ -/* - * Skin for jPlayer Plugin (jQuery JavaScript Library) - * http://www.jplayer.org - * - * Skin Name: Blue Monday - * - * Copyright (c) 2010-2012 Happyworm Ltd - * Dual licensed under the MIT and GPL licenses. - * - http://www.opensource.org/licenses/mit-license.php - * - http://www.gnu.org/copyleft/gpl.html - * - * Author: Silvia Benvenuti - * Skin Version: 4.3 (jPlayer 2.2.0) - * Date: 19th November 2012 - */ - -div.jp-audio, -div.jp-audio-stream, -div.jp-video { - - /* Edit the font-size to counteract inherited font sizing. - * Eg. 1.25em = 1 / 0.8em - */ - - font-size:1.25em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */ - - font-family:Verdana, Arial, sans-serif; - line-height:1.6; - color: #666; - border:1px solid #cccccc; - background-color:#eee; -} -div.jp-audio { - width:420px; -} -div.jp-audio-stream { - width:182px; -} -div.jp-video-270p { - width:480px; -} -div.jp-video-360p { - width:640px; -} -div.jp-video-full { - /* Rules for IE6 (full-screen) */ - width:480px; - height:270px; - /* Rules for IE7 (full-screen) - Otherwise the relative container causes other page items that are not position:static (default) to appear over the video/gui. */ - position:static !important; position:relative; -} - -/* The z-index rule is defined in this manner to enable Popcorn plugins that add overlays to video area. EG. Subtitles. */ -div.jp-video-full div div { - z-index:1000; -} - -div.jp-video-full div.jp-jplayer { - top: 0; - left: 0; - position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */ - overflow: hidden; -} - -div.jp-video-full div.jp-gui { - position: fixed !important; position: static; /* Rules for IE6 (full-screen) */ - top: 0; - left: 0; - width:100%; - height:100%; - z-index:1001; /* 1 layer above the others. */ -} - -div.jp-video-full div.jp-interface { - position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */ - bottom: 0; - left: 0; -} - -div.jp-interface { - position: relative; - background-color:#eee; - width:100%; -} - -div.jp-audio div.jp-type-single div.jp-interface { - height:80px; -} -div.jp-audio div.jp-type-playlist div.jp-interface { - height:80px; -} - -div.jp-audio-stream div.jp-type-single div.jp-interface { - height:80px; -} - -div.jp-video div.jp-interface { - border-top:1px solid #aaaaaa; -} - -/* @group CONTROLS */ - -div.jp-controls-holder { - clear: both; - width:440px; - margin:0 auto; - position: relative; - overflow:hidden; - top:-8px; /* This negative value depends on the size of the text in jp-currentTime and jp-duration */ -} - -div.jp-interface ul.jp-controls { - list-style-type:none; - margin:0; - padding: 0; - overflow:hidden; -} - -div.jp-audio ul.jp-controls { - width: 380px; - padding:20px 20px 0 20px; -} - -div.jp-audio-stream ul.jp-controls { - width: 142px; - padding:20px 20px 0 20px; -} - -div.jp-video div.jp-type-single ul.jp-controls { - width: 78px; - margin-left: 200px; -} - -div.jp-video div.jp-type-playlist ul.jp-controls { - width: 134px; - margin-left: 172px; -} -div.jp-video ul.jp-controls, -div.jp-interface ul.jp-controls li { - display:inline; - float: left; -} - -div.jp-interface ul.jp-controls a { - display:block; - overflow:hidden; - text-indent:-9999px; -} -a.jp-play, -a.jp-pause { - width:40px; - height:40px; -} - -a.jp-play { - background: url("jplayer.blue.monday.jpg") 0 0 no-repeat; -} -a.jp-play:hover { - background: url("jplayer.blue.monday.jpg") -41px 0 no-repeat; -} -a.jp-pause { - background: url("jplayer.blue.monday.jpg") 0 -42px no-repeat; - display: none; -} -a.jp-pause:hover { - background: url("jplayer.blue.monday.jpg") -41px -42px no-repeat; -} - -a.jp-stop, a.jp-previous, a.jp-next { - width:28px; - height:28px; - margin-top:6px; -} - -a.jp-stop { - background: url("jplayer.blue.monday.jpg") 0 -83px no-repeat; - margin-left:10px; -} - -a.jp-stop:hover { - background: url("jplayer.blue.monday.jpg") -29px -83px no-repeat; -} - -a.jp-previous { - background: url("jplayer.blue.monday.jpg") 0 -112px no-repeat; -} -a.jp-previous:hover { - background: url("jplayer.blue.monday.jpg") -29px -112px no-repeat; -} - -a.jp-next { - background: url("jplayer.blue.monday.jpg") 0 -141px no-repeat; -} -a.jp-next:hover { - background: url("jplayer.blue.monday.jpg") -29px -141px no-repeat; -} - -/* @end */ - -/* @group progress bar */ - -div.jp-progress { - overflow:hidden; - background-color: #ddd; -} -div.jp-audio div.jp-progress { - position: absolute; - top:32px; - height:15px; -} -div.jp-audio div.jp-type-single div.jp-progress { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-progress { - left:166px; - width:130px; -} -div.jp-video div.jp-progress { - top:0px; - left:0px; - width:100%; - height:10px; -} -div.jp-seek-bar { - background: url("jplayer.blue.monday.jpg") 0 -202px repeat-x; - width:0px; - height:100%; - cursor: pointer; -} -div.jp-play-bar { - background: url("jplayer.blue.monday.jpg") 0 -218px repeat-x ; - width:0px; - height:100%; -} - -/* The seeking class is added/removed inside jPlayer */ -div.jp-seeking-bg { - background: url("jplayer.blue.monday.seeking.gif"); -} - -/* @end */ - -/* @group volume controls */ - - -a.jp-mute, -a.jp-unmute, -a.jp-volume-max { - width:18px; - height:15px; - margin-top:12px; -} - -div.jp-audio div.jp-type-single a.jp-mute, -div.jp-audio div.jp-type-single a.jp-unmute { - margin-left: 210px; -} -div.jp-audio div.jp-type-playlist a.jp-mute, -div.jp-audio div.jp-type-playlist a.jp-unmute { - margin-left: 154px; -} - -div.jp-audio-stream div.jp-type-single a.jp-mute, -div.jp-audio-stream div.jp-type-single a.jp-unmute { - margin-left:10px; -} - -div.jp-audio a.jp-volume-max, -div.jp-audio-stream a.jp-volume-max { - margin-left: 56px; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute, -div.jp-video a.jp-volume-max { - position: absolute; - top:12px; - margin-top:0; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute { - left: 50px; -} - -div.jp-video a.jp-volume-max { - left: 134px; -} - -a.jp-mute { - background: url("jplayer.blue.monday.jpg") 0 -170px no-repeat; -} -a.jp-mute:hover { - background: url("jplayer.blue.monday.jpg") -19px -170px no-repeat; -} -a.jp-unmute { - background: url("jplayer.blue.monday.jpg") -60px -170px no-repeat; - display: none; -} -a.jp-unmute:hover { - background: url("jplayer.blue.monday.jpg") -79px -170px no-repeat; -} -a.jp-volume-max { - background: url("jplayer.blue.monday.jpg") 0 -186px no-repeat; -} -a.jp-volume-max:hover { - background: url("jplayer.blue.monday.jpg") -19px -186px no-repeat; -} - -div.jp-volume-bar { - position: absolute; - overflow:hidden; - background: url("jplayer.blue.monday.jpg") 0 -250px repeat-x; - width:46px; - height:5px; - cursor: pointer; -} -div.jp-audio div.jp-volume-bar { - top:37px; - left:330px; -} -div.jp-audio-stream div.jp-volume-bar { - top:37px; - left:92px; -} -div.jp-video div.jp-volume-bar { - top:17px; - left:72px; -} -div.jp-volume-bar-value { - background: url("jplayer.blue.monday.jpg") 0 -256px repeat-x; - width:0px; - height:5px; -} - -/* @end */ - -/* @group current time and duration */ - -div.jp-audio div.jp-time-holder { - position:absolute; - top:50px; -} -div.jp-audio div.jp-type-single div.jp-time-holder { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-time-holder { - left:166px; - width:130px; -} - -div.jp-current-time, -div.jp-duration { - width:60px; - font-size:.64em; - font-style:oblique; -} -div.jp-current-time { - float: left; - display:inline; -} -div.jp-duration { - float: right; - display:inline; - text-align: right; -} - -div.jp-video div.jp-current-time { - margin-left:20px; -} -div.jp-video div.jp-duration { - margin-right:20px; -} - -/* @end */ - -/* @group playlist */ - -div.jp-title { - font-weight:bold; - text-align:center; -} - -div.jp-title, -div.jp-playlist { - width:100%; - background-color:#ccc; - border-top:1px solid #cccccc; -} -div.jp-type-single div.jp-title, -div.jp-type-playlist div.jp-title, -div.jp-type-single div.jp-playlist { - border-top:none; -} -div.jp-title ul, -div.jp-playlist ul { - list-style-type:none; - margin:0; - padding:0 20px; - font-size:.72em; -} - -div.jp-title li { - padding:5px 0; - font-weight:bold; -} -div.jp-playlist li { - padding:5px 0 4px 20px; - border-bottom:1px solid #eee; -} - -div.jp-playlist li div { - display:inline; -} - -/* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */ - -div.jp-type-playlist div.jp-playlist li:last-child { - padding:5px 0 5px 20px; - border-bottom:none; -} -div.jp-type-playlist div.jp-playlist li.jp-playlist-current { - list-style-type:square; - list-style-position:inside; - padding-left:7px; -} -div.jp-type-playlist div.jp-playlist a { - color: #333; - text-decoration: none; -} -div.jp-type-playlist div.jp-playlist a:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-current { - color:#0d88c1; -} - -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove { - float:right; - display:inline; - text-align:right; - margin-right:10px; - font-weight:bold; - color:#666; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media { - float:right; - display:inline; - text-align:right; - margin-right:10px; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a{ - color:#666; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a:hover{ - color:#0d88c1; -} -span.jp-artist { - font-size:.8em; - color:#666; -} - -/* @end */ - -div.jp-video-play { - width:100%; - overflow:hidden; /* Important for nested negative margins to work in modern browsers */ - cursor:pointer; - background-color:rgba(0,0,0,0); /* Makes IE9 work with the active area over the whole video area. IE6/7/8 only have the button as active area. */ -} -div.jp-video-270p div.jp-video-play { - margin-top:-270px; - height:270px; -} -div.jp-video-360p div.jp-video-play { - margin-top:-360px; - height:360px; -} -div.jp-video-full div.jp-video-play { - height:100%; -} -a.jp-video-play-icon { - position:relative; - display:block; - width: 112px; - height: 100px; - - margin-left:-56px; - margin-top:-50px; - left:50%; - top:50%; - - background: url("jplayer.blue.monday.video.play.png") 0 0 no-repeat; - text-indent:-9999px; -} -div.jp-video-play:hover a.jp-video-play-icon { - background: url("jplayer.blue.monday.video.play.png") 0 -100px no-repeat; -} - - - - - -div.jp-jplayer audio, -div.jp-jplayer { - width:0px; - height:0px; -} - -div.jp-jplayer { - background-color: #000000; -} - - - - - -/* @group TOGGLES */ - -/* The audio toggles are nested inside jp-time-holder */ - -ul.jp-toggles { - list-style-type:none; - padding:0; - margin:0 auto; - overflow:hidden; -} - -div.jp-audio .jp-type-single ul.jp-toggles { - width:25px; -} -div.jp-audio .jp-type-playlist ul.jp-toggles { - width:55px; - margin: 0; - position: absolute; - left: 325px; - top: 50px; -} - -div.jp-video ul.jp-toggles { - margin-top:10px; - width:100px; -} - -ul.jp-toggles li { - display:block; - float:right; -} - -ul.jp-toggles li a { - display:block; - width:25px; - height:18px; - text-indent:-9999px; - line-height:100%; /* need this for IE6 */ -} - -a.jp-full-screen { - background: url("jplayer.blue.monday.jpg") 0 -310px no-repeat; - margin-left: 20px; -} - -a.jp-full-screen:hover { - background: url("jplayer.blue.monday.jpg") -30px -310px no-repeat; -} - -a.jp-restore-screen { - background: url("jplayer.blue.monday.jpg") -60px -310px no-repeat; - margin-left: 20px; -} - -a.jp-restore-screen:hover { - background: url("jplayer.blue.monday.jpg") -90px -310px no-repeat; -} - -a.jp-repeat { - background: url("jplayer.blue.monday.jpg") 0 -290px no-repeat; -} - -a.jp-repeat:hover { - background: url("jplayer.blue.monday.jpg") -30px -290px no-repeat; -} - -a.jp-repeat-off { - background: url("jplayer.blue.monday.jpg") -60px -290px no-repeat; -} - -a.jp-repeat-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -290px no-repeat; -} - -a.jp-shuffle { - background: url("jplayer.blue.monday.jpg") 0 -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle:hover { - background: url("jplayer.blue.monday.jpg") -30px -270px no-repeat; -} - -a.jp-shuffle-off { - background: url("jplayer.blue.monday.jpg") -60px -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -270px no-repeat; -} - - -/* @end */ - -/* @group NO SOLUTION error feedback */ - -.jp-no-solution { - padding:5px; - font-size:.8em; - background-color:#eee; - border:2px solid #cccccc; - color:#000; - display:none; -} - -.jp-no-solution a { - color:#000; -} - -.jp-no-solution span { - font-size:1em; - display:block; - text-align:center; - font-weight:bold; -} - -/* @end */ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg deleted file mode 100644 index 52fdc1aa..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif deleted file mode 100644 index dbd2105a..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png deleted file mode 100644 index 8e97df01..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm deleted file mode 100644 index e3adcabf..00000000 Binary files a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm and /dev/null differ diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js deleted file mode 100644 index 3503860e..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * bootbox.js v3.3.0 - * - * http://bootboxjs.com/license.txt - */ -var bootbox=window.bootbox||function(a,b){function c(a,b){return"undefined"==typeof b&&(b=d),"string"==typeof m[b][a]?m[b][a]:b!=e?c(a,e):a}var d="en",e="en",f=!0,g="static",h="javascript:;",i="",j={},k={},l={};l.setLocale=function(a){for(var b in m)if(b==a)return d=a,void 0;throw new Error("Invalid locale: "+a)},l.addLocale=function(a,b){"undefined"==typeof m[a]&&(m[a]={});for(var c in b)m[a][c]=b[c]},l.setIcons=function(a){k=a,("object"!=typeof k||null===k)&&(k={})},l.setBtnClasses=function(a){j=a,("object"!=typeof j||null===j)&&(j={})},l.alert=function(){var a="",b=c("OK"),d=null;switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?d=arguments[1]:b=arguments[1];break;case 3:a=arguments[0],b=arguments[1],d=arguments[2];break;default:throw new Error("Incorrect number of arguments: expected 1-3")}return l.dialog(a,{label:b,icon:k.OK,"class":j.OK,callback:d},{onEscape:d||!0})},l.confirm=function(){var a="",b=c("CANCEL"),d=c("CONFIRM"),e=null;switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?e=arguments[1]:b=arguments[1];break;case 3:a=arguments[0],b=arguments[1],"function"==typeof arguments[2]?e=arguments[2]:d=arguments[2];break;case 4:a=arguments[0],b=arguments[1],d=arguments[2],e=arguments[3];break;default:throw new Error("Incorrect number of arguments: expected 1-4")}var f=function(){return"function"==typeof e?e(!1):void 0},g=function(){return"function"==typeof e?e(!0):void 0};return l.dialog(a,[{label:b,icon:k.CANCEL,"class":j.CANCEL,callback:f},{label:d,icon:k.CONFIRM,"class":j.CONFIRM,callback:g}],{onEscape:f})},l.prompt=function(){var a="",d=c("CANCEL"),e=c("CONFIRM"),f=null,g="";switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?f=arguments[1]:d=arguments[1];break;case 3:a=arguments[0],d=arguments[1],"function"==typeof arguments[2]?f=arguments[2]:e=arguments[2];break;case 4:a=arguments[0],d=arguments[1],e=arguments[2],f=arguments[3];break;case 5:a=arguments[0],d=arguments[1],e=arguments[2],f=arguments[3],g=arguments[4];break;default:throw new Error("Incorrect number of arguments: expected 1-5")}var h=a,i=b("
    ");i.append("");var m=function(){return"function"==typeof f?f(null):void 0},n=function(){return"function"==typeof f?f(i.find("input[type=text]").val()):void 0},o=l.dialog(i,[{label:d,icon:k.CANCEL,"class":j.CANCEL,callback:m},{label:e,icon:k.CONFIRM,"class":j.CONFIRM,callback:n}],{header:h,show:!1,onEscape:m});return o.on("shown",function(){i.find("input[type=text]").focus(),i.on("submit",function(a){a.preventDefault(),o.find(".btn-inverse").click()})}),o.modal("show"),o},l.dialog=function(c,d,e){function j(){var a=null;"function"==typeof e.onEscape&&(a=e.onEscape()),a!==!1&&x.modal("hide")}var k="",l=[];e||(e={}),"undefined"==typeof d?d=[]:"undefined"==typeof d.length&&(d=[d]);for(var m=d.length;m--;){var n=null,o=null,p=null,q="",r=null;if("undefined"==typeof d[m].label&&"undefined"==typeof d[m]["class"]&&"undefined"==typeof d[m].callback){var s=0,t=null;for(var u in d[m])if(t=u,++s>1)break;1==s&&"function"==typeof d[m][u]&&(d[m].label=t,d[m].callback=d[m][u])}"function"==typeof d[m].callback&&(r=d[m].callback),d[m]["class"]?p=d[m]["class"]:m==d.length-1&&d.length<=2&&(p="btn-inverse"),d[m].link!==!0&&(p="btn "+p),n=d[m].label?d[m].label:"Option "+(m+1),d[m].icon&&(q=" "),o=d[m].href?d[m].href:h,k=""+q+n+""+k,l[m]=r}var v=["");var x=b(v.join("\n")),y="undefined"==typeof e.animate?f:e.animate;y&&x.addClass("fade");var z="undefined"==typeof e.classes?i:e.classes;return z&&x.addClass(z),x.find(".modal-body").html(c),x.on("keyup.dismiss.modal",function(a){27===a.which&&e.onEscape&&j("escape")}),x.on("click","a.close",function(a){a.preventDefault(),j("close")}),x.on("shown",function(){x.find("a.btn-inverse:first").focus()}),x.on("hidden",function(a){a.target===this&&x.remove()}),x.on("click",".modal-footer a",function(a){var c=b(this).data("handler"),e=l[c],f=null;("undefined"==typeof c||"undefined"==typeof d[c].href)&&(a.preventDefault(),"function"==typeof e&&(f=e(a)),f!==!1&&x.modal("hide"))}),b("body").append(x),x.modal({backdrop:"undefined"==typeof e.backdrop?g:e.backdrop,keyboard:!1,show:!1}),x.on("show",function(){b(a).off("focusin.modal")}),("undefined"==typeof e.show||e.show===!0)&&x.modal("show"),x},l.modal=function(){var a,c,d,e={onEscape:null,keyboard:!0,backdrop:g};switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"object"==typeof arguments[1]?d=arguments[1]:c=arguments[1];break;case 3:a=arguments[0],c=arguments[1],d=arguments[2];break;default:throw new Error("Incorrect number of arguments: expected 1-3")}return e.header=c,d="object"==typeof d?b.extend(e,d):e,l.dialog(a,[],d)},l.hideAll=function(){b(".bootbox").modal("hide")},l.animate=function(a){f=a},l.backdrop=function(a){g=a},l.classes=function(a){i=a};var m={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return l}(document,window.jQuery);window.bootbox=bootbox; \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js deleted file mode 100644 index 3b299fa4..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var t=function(t,n){this.options=n;this.$element=e(t).delegate('[data-dismiss="lightbox"]',"click.dismiss.lightbox",e.proxy(this.hide,this));this.options.remote&&this.$element.find(".lightbox-body").load(this.options.remote)};t.prototype=e.extend({},e.fn.modal.Constructor.prototype);t.prototype.constructor=t;t.prototype.enforceFocus=function(){var t=this;e(document).on("focusin.lightbox",function(e){if(t.$element[0]!==e.target&&!t.$element.has(e.target).length){t.$element.focus()}})};t.prototype.show=function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=true;this.escape();this.preloadSize(function(){t.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");if(!t.$element.parent().length){t.$element.appendTo(document.body)}hide_animation();t.$element.show();if(n){t.$element[0].offsetWidth}t.$element.addClass("in").attr("aria-hidden",false);t.enforceFocus();n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})})};t.prototype.hide=function(t){t&&t.preventDefault();var n=this;t=e.Event("hide");this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=false;this.escape();e(document).off("focusin.lightbox");this.$element.removeClass("in").attr("aria-hidden",true);e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()};t.prototype.escape=function(){var e=this;if(this.isShown&&this.options.keyboard){this.$element.on("keyup.dismiss.lightbox",function(t){t.which==27&&e.hide()})}else if(!this.isShown){this.$element.off("keyup.dismiss.lightbox")}};t.prototype.preloadSize=function(t){var n=e.Callbacks();if(t)n.add(t);var r=this;var i,s,o,u,a,f,l,c,h,p;i=e(window).height();s=e(window).width();o=parseInt(r.$element.find(".lightbox-content").css("padding-top"),10);u=parseInt(r.$element.find(".lightbox-content").css("padding-bottom"),10);a=parseInt(r.$element.find(".lightbox-content").css("padding-left"),10);f=parseInt(r.$element.find(".lightbox-content").css("padding-right"),10);l=r.$element.find(".lightbox-content").find("img:first");c=new Image;c.onload=function(){if(c.width+a+f>=s){h=c.width;p=c.height;c.width=s-a-f;c.height=p/h*c.width}if(c.height+o+u>=i){h=c.width;p=c.height;c.height=i-o-u;c.width=h/p*c.height}r.$element.css({position:"fixed",width:c.width+a+f,height:c.height+o+u,top:i/2-(c.height+o+u)/2,left:"50%","margin-left":-1*(c.width+a+f)/2});r.$element.find(".lightbox-content").css({width:c.width,height:c.height});n.fire()};c.src=l.attr("src")};var n=e.fn.lightbox;e.fn.lightbox=function(n){return this.each(function(){var r=e(this);var i=r.data("lightbox");var s=e.extend({},e.fn.lightbox.defaults,r.data(),typeof n=="object"&&n);if(!i)r.data("lightbox",i=new t(this,s));if(typeof n=="string")i[n]();else if(s.show)i.show()})};e.fn.lightbox.defaults={backdrop:true,keyboard:true,show:true};e.fn.lightbox.Constructor=t;e.fn.lightbox.noConflict=function(){e.fn.lightbox=n;return this};e(document).on("click.lightbox.data-api",'[data-toggle="lightbox"]',function(t){var n=e(this);var r=n.attr("href");var i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,""));var s=i.data("lightbox")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault();i.lightbox(s).one("hide",function(){n.focus()})})}(window.jQuery) \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js deleted file mode 100644 index 78ec172c..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var t=function(e,t){this.init(e,t)};t.prototype={constructor:t,init:function(t,n){this.options=n;this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this));this.options.remote&&this.$element.find(".modal-body").load(this.options.remote);var r=typeof this.options.manager==="function"?this.options.manager.call(this):this.options.manager;r=r.appendModal?r:e(r).modalmanager().data("modalmanager");r.appendModal(this)},toggle:function(){return this[!this.isShown?"show":"hide"]()},show:function(){var t=e.Event("show");if(this.isShown)return;this.$element.trigger(t);if(t.isDefaultPrevented())return;this.escape();this.tab();this.options.loading&&this.loading()},hide:function(t){t&&t.preventDefault();t=e.Event("hide");this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return this.isShown=false;this.isShown=false;this.escape();this.tab();this.isLoading&&this.loading();e(document).off("focusin.modal");this.$element.removeClass("in").removeClass("animated").removeClass(this.options.attentionAnimation).removeClass("modal-overflow").attr("aria-hidden",true);e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},layout:function(){var t=this.options.height?"height":"max-height",n=this.options.height||this.options.maxHeight;if(this.options.width){this.$element.css("width",this.options.width);var r=this;this.$element.css("margin-left",function(){if(/%/ig.test(r.options.width)){return-(parseInt(r.options.width)/2)+"%"}else{return-(e(this).width()/2)+"px"}})}else{this.$element.css("width","");this.$element.css("margin-left","")}this.$element.find(".modal-body").css("overflow","").css(t,"");if(n){this.$element.find(".modal-body").css("overflow","auto").css(t,n)}var i=e(window).height()-10e(this).data("tabindex")?r=e(this):i=e(this)}});r[0]!==e(this)[0]?r.focus():i.focus();n.preventDefault()}})}else if(!this.isShown){this.$element.off("keydown.tabindex.modal")}},escape:function(){var e=this;if(this.isShown&&this.options.keyboard){if(!this.$element.attr("tabindex"))this.$element.attr("tabindex",-1);this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()})}else if(!this.isShown){this.$element.off("keyup.dismiss.modal")}},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end);t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n);t.hideModal()})},hideModal:function(){var e=this.options.height?"height":"max-height";var t=this.options.height||this.options.maxHeight;if(t){this.$element.find(".modal-body").css("overflow","").css(e,"")}this.$element.hide().trigger("hidden")},removeLoading:function(){this.$loading.remove();this.$loading=null;this.isLoading=false},loading:function(t){t=t||function(){};var n=this.$element.hasClass("fade")?"fade":"";if(!this.isLoading){var r=e.support.transition&&n;this.$loading=e('
    ').append(this.options.spinner).appendTo(this.$element);if(r)this.$loading[0].offsetWidth;this.$loading.addClass("in");this.isLoading=true;r?this.$loading.one(e.support.transition.end,t):t()}else if(this.isLoading&&this.$loading){this.$loading.removeClass("in");var i=this;e.support.transition&&this.$element.hasClass("fade")?this.$loading.one(e.support.transition.end,function(){i.removeLoading()}):i.removeLoading()}else if(t){t(this.isLoading)}},focus:function(){var e=this.$element.find(this.options.focusOn);e=e.length?e:this.$element;e.focus()},attention:function(){if(this.options.attentionAnimation){this.$element.removeClass("animated").removeClass(this.options.attentionAnimation);var e=this;setTimeout(function(){e.$element.addClass("animated").addClass(e.options.attentionAnimation)},0)}this.focus()},destroy:function(){var t=e.Event("destroy");this.$element.trigger(t);if(t.isDefaultPrevented())return;this.teardown()},teardown:function(){if(!this.$parent.length){this.$element.remove();this.$element=null;return}if(this.$parent!==this.$element.parent()){this.$element.appendTo(this.$parent)}this.$element.off(".modal");this.$element.removeData("modal");this.$element.removeClass("in").attr("aria-hidden",true)}};e.fn.modal=function(n,r){return this.each(function(){var i=e(this),s=i.data("modal"),o=e.extend({},e.fn.modal.defaults,i.data(),typeof n=="object"&&n);if(!s)i.data("modal",s=new t(this,o));if(typeof n=="string")s[n].apply(s,[].concat(r));else if(o.show)s.show()})};e.fn.modal.defaults={keyboard:true,backdrop:true,loading:false,show:true,width:null,height:null,maxHeight:null,modalOverflow:false,consumeTab:true,focusOn:null,replace:false,resize:false,attentionAnimation:"shake",manager:"body",spinner:'
    '};e.fn.modal.Constructor=t;e(function(){e(document).off("click.modal").on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault();i.modal(s).one("hide",function(){n.focus()})})})}(window.jQuery) \ No newline at end of file diff --git a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js b/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js deleted file mode 100644 index 81f557ad..00000000 --- a/local/local/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";function r(e){return function(t){if(this===t.target){return e.apply(this,arguments)}}}var t=function(e,t){this.init(e,t)};t.prototype={constructor:t,init:function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.modalmanager.defaults,this.$element.data(),typeof n=="object"&&n);this.stack=[];this.backdropCount=0;if(this.options.resize){var r,i=this;e(window).on("resize.modal",function(){r&&clearTimeout(r);r=setTimeout(function(){for(var e=0;e').appendTo(this.$element)}else{n=this.$backdropHandle;n.off(".modalmanager");this.$backdropHandle=null;this.isLoading&&this.removeSpinner()}return n},removeContainer:function(e){e.$container.remove();e.$container=null},createContainer:function(t){var i;i=e(' -
    -
    - \ No newline at end of file diff --git a/local/local/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl b/local/local/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl deleted file mode 100644 index 6db9acb9..00000000 --- a/local/local/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl +++ /dev/null @@ -1,119 +0,0 @@ - - - diff --git a/local/local/modules/VirtualProductControl/LICENSE.txt b/local/local/modules/VirtualProductControl/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/VirtualProductControl/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/modules/VirtualProductDelivery/LICENSE.txt b/local/local/modules/VirtualProductDelivery/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/local/modules/VirtualProductDelivery/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/local/session/.gitkeep b/local/local/session/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/local/session/sess_117e6a88059df20ba267cd892f37f062 b/local/local/session/sess_117e6a88059df20ba267cd892f37f062 deleted file mode 100644 index 106cf06c..00000000 Binary files a/local/local/session/sess_117e6a88059df20ba267cd892f37f062 and /dev/null differ diff --git a/local/local/session/sess_b2ebbea5872c07bdbca4633b47b06839 b/local/local/session/sess_b2ebbea5872c07bdbca4633b47b06839 deleted file mode 100644 index 92bbca52..00000000 Binary files a/local/local/session/sess_b2ebbea5872c07bdbca4633b47b06839 and /dev/null differ diff --git a/local/local/session/sess_e75e78f2de193f9ab052b17b210c8df4 b/local/local/session/sess_e75e78f2de193f9ab052b17b210c8df4 deleted file mode 100644 index d1d7ea6d..00000000 Binary files a/local/local/session/sess_e75e78f2de193f9ab052b17b210c8df4 and /dev/null differ diff --git a/local/modules/SessionPurge/Command/SessionPurge.php b/local/modules/SessionPurge/Command/SessionPurge.php new file mode 100644 index 00000000..d3afd2d7 --- /dev/null +++ b/local/modules/SessionPurge/Command/SessionPurge.php @@ -0,0 +1,83 @@ + + * Date: 08/11/2016 19:40 + */ +namespace SessionPurge\Command; + +use SessionPurge\Event\SessionPurgeEvent; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Thelia\Command\ContainerAwareCommand; +use Thelia\Model\ConfigQuery; + +class SessionPurge extends ContainerAwareCommand +{ + protected function configure() + { + $this + ->setName("sessions:purge") + ->setDescription("Purge all outdated session in local/sessions directory") + ->addOption( + "older-than", + 's', + InputOption::VALUE_OPTIONAL, + "Delete sessions older than N seconds. The session_config.lifetime value is ignored." + )->addOption( + 'day', + 'd', + InputOption::VALUE_OPTIONAL, + 'Delete sessions older than N days. The session_config.lifetime value is ignored.', + null + ) + ; + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $days = $seconds = 0; + + $seconds = $lifetime = intval($input->getOption('older-than')); + + if ($lifetime <= 0) { + $days = intval($input->getOption('day')); + $lifetime = 86400 * $days; + } + + if ($lifetime <= 0) { + $lifetime = $seconds = ConfigQuery::read('session_config.lifetime', 0); + } + + if ($lifetime > 0) { + $output->writeln( + sprintf( + "Deleting session files older than %d %s", + $days > 0 ? $days : $seconds, + $days > 0 ? 'days' : 'seconds' + ) + ); + + $event = new SessionPurgeEvent($lifetime, $input->getOption('verbose')); + + $this->getDispatcher()->dispatch(SessionPurgeEvent::PURGE, $event); + + foreach ($event->getStatus() as $status => $level) { + $output->writeln("<$level>$status"); + } + + $output->writeln(sprintf("%d session files deleted", $event->getDeletedCount())); + } else { + $output->writeln(sprintf("Session lifetime is undefined, please check session_config.lifetime variable.")); + } + } +} diff --git a/local/modules/SessionPurge/Config/config.xml b/local/modules/SessionPurge/Config/config.xml new file mode 100644 index 00000000..baed79e6 --- /dev/null +++ b/local/modules/SessionPurge/Config/config.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/local/modules/modules/HookAdminHome/Config/module.xml b/local/modules/SessionPurge/Config/module.xml similarity index 61% rename from local/modules/modules/HookAdminHome/Config/module.xml rename to local/modules/SessionPurge/Config/module.xml index 3dde8cee..33302fd3 100644 --- a/local/modules/modules/HookAdminHome/Config/module.xml +++ b/local/modules/SessionPurge/Config/module.xml @@ -2,31 +2,27 @@ - HookAdminHome\HookAdminHome + SessionPurge\SessionPurge - Displays the default blocks on the homepage of the administration + A command for clearing outdated session files - Affiche les blocs par défaut sur la page d'accueil de l'administration + Une commande pour supprimer les fichiers de session obsolètes en_US fr_FR - 2.3.4 + 1.0.1 - - Gilles Bourgeat - gilles@thelia.net - Franck Allimant CQFDev - franck@cqfdev.fr + thelia@cqfdev.fr www.cqfdev.fr classic - 2.2.0 + 2.3.0 prod diff --git a/local/modules/SessionPurge/Config/routing.xml b/local/modules/SessionPurge/Config/routing.xml new file mode 100644 index 00000000..4a52e776 --- /dev/null +++ b/local/modules/SessionPurge/Config/routing.xml @@ -0,0 +1,11 @@ + + + + + + SessionPurge\Controller\PurgeController::purge + .+ + + diff --git a/local/modules/SessionPurge/Config/secret-key.txt b/local/modules/SessionPurge/Config/secret-key.txt new file mode 100644 index 00000000..25124742 --- /dev/null +++ b/local/modules/SessionPurge/Config/secret-key.txt @@ -0,0 +1 @@ +Thelia2 diff --git a/local/modules/SessionPurge/Controller/PurgeController.php b/local/modules/SessionPurge/Controller/PurgeController.php new file mode 100644 index 00000000..4a4211a3 --- /dev/null +++ b/local/modules/SessionPurge/Controller/PurgeController.php @@ -0,0 +1,60 @@ + + * Date: 08/11/2016 22:15 + */ +class PurgeController extends BaseFrontController +{ + public function purge($secretKey) + { + $responseText = ''; + + $storedSecretKey = trim(@file_get_contents(__DIR__ .'/../Config/secret-key.txt')); + + if ($storedSecretKey != $secretKey) { + $responseText .= sprintf("ERROR: key verification failed.
    "); + } else { + $lifetime = intval($this->getRequest()->query->get('older_than', 0)); + + if ($lifetime <= 0) { + $lifetime = ConfigQuery::read('session_config.lifetime', 0); + } + + if ($lifetime > 0) { + $responseText .= sprintf("INFO: Deleting session files older than %d seconds
    ", $lifetime); + + $verbose = $this->getRequest()->query->get('verbose', false); + + $event = new SessionPurgeEvent($lifetime, !empty($verbose)); + + $this->getDispatcher()->dispatch(SessionPurgeEvent::PURGE, $event); + + foreach ($event->getStatus() as $status => $level) { + $responseText .= strtoupper($level) . ": $status
    "; + } + + $responseText .= sprintf("INFO: %d session files deleted
    ", $event->getDeletedCount()); + } else { + $responseText .= sprintf("ERROR: Session lifetime is undefined, please check session_config.lifetime variable or add older_than parameter.
    "); + } + } + + return new Response($responseText); + } +} diff --git a/local/modules/SessionPurge/Event/SessionPurgeEvent.php b/local/modules/SessionPurge/Event/SessionPurgeEvent.php new file mode 100644 index 00000000..8bb2d3be --- /dev/null +++ b/local/modules/SessionPurge/Event/SessionPurgeEvent.php @@ -0,0 +1,91 @@ +maxAge = $maxAge; + $this->verbose = $verbose; + } + + /** + * @return int + */ + public function getMaxAge() + { + return $this->maxAge; + } + + /** + * @return string[] + */ + public function getStatus() + { + return $this->status; + } + + /** + * @param string $status + * @return $this + */ + public function appendStatus($status, $level = 'info') + { + $this->status[$status] = $level; + return $this; + } + + /** + * @return boolean + */ + public function isVerbose() + { + return $this->verbose; + } + + /** + * @return int + */ + public function getDeletedCount() + { + return $this->deletedCount; + } + + /** + * @param int $deletedCount + * @return $this + */ + public function setDeletedCount($deletedCount) + { + $this->deletedCount = $deletedCount; + return $this; + } +} diff --git a/local/modules/SessionPurge/EventListener/EventManager.php b/local/modules/SessionPurge/EventListener/EventManager.php new file mode 100644 index 00000000..c6379663 --- /dev/null +++ b/local/modules/SessionPurge/EventListener/EventManager.php @@ -0,0 +1,70 @@ + + * Date: 08/11/2016 21:54 + */ +namespace SessionPurge\EventListener; + +use SessionPurge\Event\SessionPurgeEvent; +use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\Finder\Finder; +use Symfony\Component\Finder\SplFileInfo; +use Thelia\Model\Exception\InvalidArgumentException; + +class EventManager implements EventSubscriberInterface +{ + public function purge(SessionPurgeEvent $event) + { + $lifetime = $event->getMaxAge(); + + if ($lifetime <= 0) { + throw new InvalidArgumentException("lifetime could not be 0"); + } + + $verbose = $event->isVerbose(); + + $files = Finder::create() + ->in(THELIA_LOCAL_DIR . 'session') + ->files() + ->ignoreDotFiles(true) + ->date('<= now - ' . $lifetime . ' seconds'); + + $deleted = 0; + + /** @var SplFileInfo $file */ + foreach ($files as $file) { + $path = $file->getRealPath(); + + if (false === @unlink($path)) { + $event->appendStatus(sprintf("Failed to delete %s file", $path), 'error'); + } else { + if ($verbose) { + $event->appendStatus(sprintf("%s sucessfully deleted", $path)); + } + + $deleted++; + } + } + + $event->setDeletedCount($deleted); + } + + /** + * @inheritdoc + */ + public static function getSubscribedEvents() + { + return [ + SessionPurgeEvent::PURGE => ["purge", 128] + ]; + } +} diff --git a/local/modules/SessionPurge/LICENSE.txt b/local/modules/SessionPurge/LICENSE.txt new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/local/modules/SessionPurge/LICENSE.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/local/modules/SessionPurge/Readme.md b/local/modules/SessionPurge/Readme.md new file mode 100644 index 00000000..f6a862cc --- /dev/null +++ b/local/modules/SessionPurge/Readme.md @@ -0,0 +1,73 @@ +# Session Purge + +A simple Thelia command to delete outdated session files from the local/sessions directory. + +Run it periodically, in a cron for example, to prevent the local/session directory to grow indefinitely. + +The command uses the value of the `session_config.lifetime` configuration variable, which is the session lifetime +in seconds, and delete all files which are older than `session_config.lifetime` seconds. +If `session_config.lifetime` is 0 (zero), the command will not delete anything. Use the `--older-than _seconds_` option +to define the maximum age of a session file. When `--older-than` is used, the value of `session_config.lifetime` +configuration variable is ignored. +You may also use `-d _days_` to delete session files older than the specified number of days. + +For example, to delete sessions older than ten day, use the following command : + +`Thelia sessions:purge --older-than 864000` + +or + +`Thelia sessions:purge -d 10` + +If you can't run a cron on your host, you can use the following URL to trigger the purge process : + +`http://yourhost.tld/session-purge/secret-key` + +The secret key is stored in the `Config/secret-key.txt`. Enter the string you want in the first line of this file, and use +it in the URL. For example, if you entered `53cr37_k3y` in this files, you'll call the purge URL as this : + +`http://yourhost.tld/session-purge/53cr37_k3y` + +The default key is `Thelia2` (surprise !). + +To specify a session lifetime, use the `older_than` URL parameter, for example : + +`http://yourhost.tld/session-purge/53cr37_k3y?older_than=86400` + +Your can also use the `verbose=1` URL parameter to get the list of deleted files. + +---- + +Une commande Thelia qui vous permet de supprimer les fichiers de session obsolètes du répertoire local/sessions. + +Il est conseillé de la lancer régulièrement pour éviter que le répertoire local/sessions grossisse indéfiniment, au +risque de saturer le disque, ou d'épuiser les réserves d'inodes. + +La commande utilise la valeur de `session_config.lifetime`, qui est la durée de vie d'une session en secondes, et supprime +tous les fichiers qui sont plus anciens que `session_config.lifetime` secondes. +Si `session_config.lifetime` valeur 0 (zéro), la commande ne supprimera aucun fichier. Vous pouvez alors utiliser l'option +`--older-than _seconds_` pour définir l'age maximum des fichiers de session. Quand `--older-than` est utilisé, la valeur +de `session_config.lifetime` est ignorée. + +Par exemple, pour supprimer les sessions datant de plus d'un jour, utiliser la commande : + +`Thelia sessions:purge --older-than 86400` + +Si vous ne pouvez pas lancer de cron ou de commandes sur votre serveur, vous pouvez utiliser l'URL suivante pour déclencher + la purge : + +`http://yourhost.tld/session-purge/clef_secrete` + +La clef secrète est stockée dans le fichier `Config/secret-key.txt`. Entrez la chaîne de caractère que vous voulez sur la +première ligne de ce fichier, et utilisez la dans l'URL. Par exemple, si vous avez indiqué `53cr37_k3y` dans ce fichier, +vous devrez utiliser l'URL suivante : + +`http://yourhost.tld/session-purge/53cr37_k3y` + +La clef par défaut est `Thelia2` (surprise !). + +Pour indiquer une durée de vie de session, vous pouvez utiliser le paramètre `older_than`: + +`http://yourhost.tld/session-purge/53cr37_k3y?older_than=86400` + +Vous pouvez aussi utiliser le paramètre `verbose=1` pour obtenir la liste des fichiers supprimés. diff --git a/local/modules/modules/HookAdminHome/HookAdminHome.php b/local/modules/SessionPurge/SessionPurge.php similarity index 90% rename from local/modules/modules/HookAdminHome/HookAdminHome.php rename to local/modules/SessionPurge/SessionPurge.php index 1a403c0a..9a2d273b 100644 --- a/local/modules/modules/HookAdminHome/HookAdminHome.php +++ b/local/modules/SessionPurge/SessionPurge.php @@ -10,12 +10,12 @@ /* file that was distributed with this source code. */ /*************************************************************************************/ -namespace HookAdminHome; +namespace SessionPurge; use Thelia\Module\BaseModule; -class HookAdminHome extends BaseModule +class SessionPurge extends BaseModule { /** @var string */ - const DOMAIN_NAME = 'hookadminhome'; + const DOMAIN_NAME = 'sessionpurge'; } diff --git a/local/modules/modules/HookAdminHome/composer.json b/local/modules/SessionPurge/composer.json similarity index 59% rename from local/modules/modules/HookAdminHome/composer.json rename to local/modules/SessionPurge/composer.json index d5921a2c..a364052d 100644 --- a/local/modules/modules/HookAdminHome/composer.json +++ b/local/modules/SessionPurge/composer.json @@ -1,11 +1,11 @@ { - "name": "thelia/hook-admin-home-module", + "name": "roadster31/session-purge-module", "license": "LGPL-3.0+", "type": "thelia-module", "require": { "thelia/installer": "~1.1" }, "extra": { - "installer-name": "HookAdminHome" + "installer-name": "SessionPurge" } -} \ No newline at end of file +} diff --git a/local/modules/Sitemap/Config/config.xml b/local/modules/Sitemap/Config/config.xml new file mode 100644 index 00000000..0c3cb8d2 --- /dev/null +++ b/local/modules/Sitemap/Config/config.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + diff --git a/local/local/modules/TheliaMigrateCountry/Config/module.xml b/local/modules/Sitemap/Config/module.xml similarity index 59% rename from local/local/modules/TheliaMigrateCountry/Config/module.xml rename to local/modules/Sitemap/Config/module.xml index eba7cb69..54c3f1f2 100644 --- a/local/local/modules/TheliaMigrateCountry/Config/module.xml +++ b/local/modules/Sitemap/Config/module.xml @@ -2,25 +2,25 @@ - TheliaMigrateCountry\TheliaMigrateCountry + Sitemap\Sitemap - Countries/states migration tool + Create sitemap and sitemap image files more quickly - Utilitaire de migration des pays/états + Génère les fichiers sitemap et sitemap image plus rapidement en_US fr_FR - 2.3.4 + 1.5.0 - Julien Chanséaume - julien@thelia.net + Etienne Perriere + eperriere@openstudio.fr classic - 2.3.0 - alpha + 2.1.0 + beta diff --git a/local/modules/Sitemap/Config/routing.xml b/local/modules/Sitemap/Config/routing.xml new file mode 100644 index 00000000..d12b4a48 --- /dev/null +++ b/local/modules/Sitemap/Config/routing.xml @@ -0,0 +1,23 @@ + + + + + + Sitemap\Controller\SitemapController::generateAction + + + + Sitemap\Controller\SitemapController::generateImageAction + + + + Sitemap:SitemapConfig:default + + + + Sitemap:SitemapConfig:save + + + diff --git a/local/modules/Sitemap/Config/schema.xml b/local/modules/Sitemap/Config/schema.xml new file mode 100644 index 00000000..c0df3613 --- /dev/null +++ b/local/modules/Sitemap/Config/schema.xml @@ -0,0 +1,16 @@ + + + + + + + + + + +
    + + +
    diff --git a/local/modules/Sitemap/Config/sqldb.map b/local/modules/Sitemap/Config/sqldb.map new file mode 100644 index 00000000..63a93baa --- /dev/null +++ b/local/modules/Sitemap/Config/sqldb.map @@ -0,0 +1,2 @@ +# Sqlfile -> Database map +thelia.sql=thelia diff --git a/local/modules/Sitemap/Config/thelia.sql b/local/modules/Sitemap/Config/thelia.sql new file mode 100644 index 00000000..8c519c02 --- /dev/null +++ b/local/modules/Sitemap/Config/thelia.sql @@ -0,0 +1,24 @@ + +# This is a fix for InnoDB in MySQL >= 4.1.x +# It "suspends judgement" for fkey relationships until are tables are set. +SET FOREIGN_KEY_CHECKS = 0; + +-- --------------------------------------------------------------------- +-- sitemap_priority +-- --------------------------------------------------------------------- + +DROP TABLE IF EXISTS `sitemap_priority`; + +CREATE TABLE `sitemap_priority` +( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `value` FLOAT, + `source` VARCHAR(64), + `source_id` INTEGER, + `created_at` DATETIME, + `updated_at` DATETIME, + PRIMARY KEY (`id`) +) ENGINE=InnoDB; + +# This restores the fkey checks, after having unset them earlier +SET FOREIGN_KEY_CHECKS = 1; diff --git a/local/modules/Sitemap/Config/update/sql/1.5.0.sql b/local/modules/Sitemap/Config/update/sql/1.5.0.sql new file mode 100644 index 00000000..8c519c02 --- /dev/null +++ b/local/modules/Sitemap/Config/update/sql/1.5.0.sql @@ -0,0 +1,24 @@ + +# This is a fix for InnoDB in MySQL >= 4.1.x +# It "suspends judgement" for fkey relationships until are tables are set. +SET FOREIGN_KEY_CHECKS = 0; + +-- --------------------------------------------------------------------- +-- sitemap_priority +-- --------------------------------------------------------------------- + +DROP TABLE IF EXISTS `sitemap_priority`; + +CREATE TABLE `sitemap_priority` +( + `id` INTEGER NOT NULL AUTO_INCREMENT, + `value` FLOAT, + `source` VARCHAR(64), + `source_id` INTEGER, + `created_at` DATETIME, + `updated_at` DATETIME, + PRIMARY KEY (`id`) +) ENGINE=InnoDB; + +# This restores the fkey checks, after having unset them earlier +SET FOREIGN_KEY_CHECKS = 1; diff --git a/local/modules/Sitemap/Controller/BrandSitemapTrait.php b/local/modules/Sitemap/Controller/BrandSitemapTrait.php new file mode 100644 index 00000000..751511b7 --- /dev/null +++ b/local/modules/Sitemap/Controller/BrandSitemapTrait.php @@ -0,0 +1,107 @@ + + */ +trait BrandSitemapTrait +{ + /** + * Get brands + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapBrands(&$sitemap, $locale) + { + // Prepare query - get brands URL + $query = RewritingUrlQuery::create() + ->filterByView('brand') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible brands + self::addJoinBrands($query); + + // Get brands last update + $query->withColumn(BrandTableMap::UPDATED_AT, 'BRAND_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('BRAND_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()){ + // Open new sitemap line & set brand URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_brand_value', SiteMap::DEFAULT_PRIORITY_BRAND_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + '.$sitemapEvent->getLoc().' + '.$sitemapEvent->getLastmod().' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join brands and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinBrands(RewritingUrlQuery &$query) + { + // Join RewritingURL with brand to have only visible brands + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + BrandTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'brandJoin'); + + // Get only visible products + $query->addJoinCondition('brandJoin', BrandTableMap::VISIBLE.' = 1'); + } + +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/CategorySitemapTrait.php b/local/modules/Sitemap/Controller/CategorySitemapTrait.php new file mode 100644 index 00000000..50cc9599 --- /dev/null +++ b/local/modules/Sitemap/Controller/CategorySitemapTrait.php @@ -0,0 +1,150 @@ + + */ +trait CategorySitemapTrait +{ + /** + * Get categories + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapCategories(&$sitemap, $locale) + { + // Prepare query - get categories URL + $query = RewritingUrlQuery::create() + ->filterByView('category') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible categories + self::addJoinCategory($query, $locale); + + if (Sitemap::getConfigValue('exclude_empty_category') == 1) { + self::addJoinCategoryCheckNotEmpty($query); + } + + // Get categories last update + $query->withColumn(CategoryTableMap::UPDATED_AT, 'CATEGORY_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('CATEGORY_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()) { + // Open new sitemap line & set category URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_category_value', SiteMap::DEFAULT_PRIORITY_CATEGORY_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + ' . $sitemapEvent->getLoc() . ' + ' . $sitemapEvent->getLastmod() . ' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join categories and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinCategory(RewritingUrlQuery &$query) + { + // Join RewritingURL with Category to have only visible categories + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + CategoryTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'categoryJoin'); + + // Get only visible categories + $query->addJoinCondition('categoryJoin', CategoryTableMap::VISIBLE.' = 1'); + } + + /** + * Join categories and their URLs + * + * @param Criteria $query + */ + protected function addJoinCategoryCheckNotEmpty(Criteria &$query) + { + $categoryChildJoin = new Join(); + $categoryChildJoin->addExplicitCondition( + CategoryTableMap::TABLE_NAME, + 'ID', + null, + CategoryTableMap::TABLE_NAME, + 'PARENT', + 'category_category_child' + ); + + $categoryChildJoin->setJoinType(Criteria::LEFT_JOIN); + $query->addJoinObject($categoryChildJoin, 'categoryCategoryChildJoin'); + + + $productChildJoin = new Join(); + $productChildJoin->addExplicitCondition( + CategoryTableMap::TABLE_NAME, + 'ID', + null, + ProductCategoryTableMap::TABLE_NAME, + 'CATEGORY_ID', + 'category_product_child' + ); + + $productChildJoin->setJoinType(Criteria::LEFT_JOIN); + $query->addJoinObject($productChildJoin, 'categoryProductChildJoin'); + + $query->where('(category_category_child.id IS NOT NULL || category_product_child.product_id IS NOT NULL)'); + $query->addGroupByColumn('ID'); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/ContentSitemapTrait.php b/local/modules/Sitemap/Controller/ContentSitemapTrait.php new file mode 100644 index 00000000..f2cc30f7 --- /dev/null +++ b/local/modules/Sitemap/Controller/ContentSitemapTrait.php @@ -0,0 +1,107 @@ + + */ +trait ContentSitemapTrait +{ + /** + * Get contents + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapContents(&$sitemap, $locale) + { + // Prepare query - get contents URL + $query = RewritingUrlQuery::create() + ->filterByView('content') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible contents + self::addJoinContent($query); + + // Get contents last update + $query->withColumn(ContentTableMap::UPDATED_AT, 'CONTENT_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('CONTENT_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()){ + // Open new sitemap line & set brand URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_folder_value', SiteMap::DEFAULT_PRIORITY_FOLDER_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + '.$sitemapEvent->getLoc().' + '.$sitemapEvent->getLastmod().' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join contents and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinContent(RewritingUrlQuery &$query) + { + // Join RewritingURL with Content to have only visible contents + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ContentTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'contentJoin'); + + // Get only visible products + $query->addJoinCondition('contentJoin', ContentTableMap::VISIBLE.' = 1'); + } + +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/FolderSitemapTrait.php b/local/modules/Sitemap/Controller/FolderSitemapTrait.php new file mode 100644 index 00000000..69f7a9d9 --- /dev/null +++ b/local/modules/Sitemap/Controller/FolderSitemapTrait.php @@ -0,0 +1,144 @@ + + */ +trait FolderSitemapTrait +{ + /** + * Get folders + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapFolders(&$sitemap, $locale) + { + // Prepare query - get folders URL + $query = RewritingUrlQuery::create() + ->filterByView('folder') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible folders + self::addJoinFolder($query); + + if (Sitemap::getConfigValue('exclude_empty_folder') == 1) { + self::addJoinFolderCheckNotEmpty($query); + } + + // Get folders last update + $query->withColumn(FolderTableMap::UPDATED_AT, 'FOLDER_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('FOLDER_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()){ + // Open new sitemap line & set brand URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_folder_value', SiteMap::DEFAULT_PRIORITY_FOLDER_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + '.$sitemapEvent->getLoc().' + '.$sitemapEvent->getLastmod().' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join folders and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinFolder(RewritingUrlQuery &$query) + { + // Join RewritingURL with Folder to have only visible folders + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + FolderTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'folderJoin'); + + // Get only visible folders + $query->addJoinCondition('folderJoin', FolderTableMap::VISIBLE.' = 1'); + } + + protected function addJoinFolderCheckNotEmpty(Criteria &$query) + { + $folderChildJoin = new Join(); + $folderChildJoin->addExplicitCondition( + FolderTableMap::TABLE_NAME, + 'ID', + null, + FolderTableMap::TABLE_NAME, + 'PARENT', + 'folder_folder_child' + ); + + $folderChildJoin->setJoinType(Criteria::LEFT_JOIN); + $query->addJoinObject($folderChildJoin, 'folderFolderChildJoin'); + + + $contentChildJoin = new Join(); + $contentChildJoin->addExplicitCondition( + FolderTableMap::TABLE_NAME, + 'ID', + null, + ContentFolderTableMap::TABLE_NAME, + 'FOLDER_ID', + 'folder_content_child' + ); + + $contentChildJoin->setJoinType(Criteria::LEFT_JOIN); + $query->addJoinObject($contentChildJoin, 'folderContentChildJoin'); + + $query->where('(folder_folder_child.id IS NOT NULL || folder_content_child.content_id IS NOT NULL)'); + $query->addGroupByColumn('ID'); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/ProductImageTrait.php b/local/modules/Sitemap/Controller/ProductImageTrait.php new file mode 100644 index 00000000..e915893e --- /dev/null +++ b/local/modules/Sitemap/Controller/ProductImageTrait.php @@ -0,0 +1,131 @@ + + */ +trait ProductImageTrait +{ + protected function setSitemapProductImages(&$sitemap, $locale) + { + // Change timeout for this script + ini_set('max_execution_time', Sitemap::getConfigValue('timeout', 30)); + + // Prepare query - get products URL + $query = RewritingUrlQuery::create() + ->filterByView('product') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible products + self::addJoinProductI18n($query); + + // Get products title & image file name + $query->withColumn(ProductI18nTableMap::TITLE, 'PRODUCT_TITLE'); + $query->addDescendingOrderByColumn(ProductImageTableMap::POSITION); + $query->addGroupByColumn(RewritingUrlTableMap::VIEW_ID); + $query->withColumn(ProductImageTableMap::FILE, 'PRODUCT_FILE'); + + // Execute query + $results = $query->find(); + + // Get image generation configuration values + $configValues = []; + $configValues['width'] = Sitemap::getConfigValue('width'); + $configValues['height'] = Sitemap::getConfigValue('height'); + $configValues['quality'] = Sitemap::getConfigValue('quality', 75); + $configValues['rotation'] = Sitemap::getConfigValue('rotation', 0); + $configValues['resizeMode'] = Sitemap::getConfigValue('resize_mode', \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS); + $configValues['bgColor'] = Sitemap::getConfigValue('background_color'); + $configValues['allowZoom'] = Sitemap::getConfigValue('allow_zoom', false); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + + // Generate image data + $this->generateSitemapImage('product', $result, $configValues, $sitemap); + } + } + + /** + * Join products and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinProductI18n(RewritingUrlQuery &$query) + { + // Join RewritingURL with Product to have only visible products + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ProductTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'productJoin'); + + $query->addJoinCondition('productJoin', ProductTableMap::VISIBLE.' = 1'); + + // Join RewritingURL with ProductI18n to have product title for it's image + $joinI18n = new Join(); + + $joinI18n->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ProductI18nTableMap::TABLE_NAME, + 'ID', + null + ); + $joinI18n->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_LOCALE', + null, + ProductI18nTableMap::TABLE_NAME, + 'LOCALE', + null + ); + + $joinI18n->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($joinI18n); + + + // Join RewritingURL with ProductImage to have image file + $joinImage = new Join(); + + $joinImage->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ProductImageTableMap::TABLE_NAME, + 'PRODUCT_ID', + null + ); + + $joinImage->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($joinImage, 'productImageJoin'); + + $query->addJoinCondition('productImageJoin', ProductImageTableMap::VISIBLE.' = 1'); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/ProductSitemapTrait.php b/local/modules/Sitemap/Controller/ProductSitemapTrait.php new file mode 100644 index 00000000..aa57240e --- /dev/null +++ b/local/modules/Sitemap/Controller/ProductSitemapTrait.php @@ -0,0 +1,106 @@ + + */ +trait ProductSitemapTrait +{ + /** + * Get products + * + * @param $sitemap + * @param $locale + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function setSitemapProducts(&$sitemap, $locale) + { + // Prepare query - get products URL + $query = RewritingUrlQuery::create() + ->filterByView('product') + ->filterByRedirected(null) + ->filterByViewLocale($locale); + + // Join with visible products + self::addJoinProduct($query); + + // Get products last update + $query->withColumn(ProductTableMap::UPDATED_AT, 'PRODUCT_UPDATE_AT'); + + // Execute query + $results = $query->find(); + + // For each result, hydrate XML file + /** @var RewritingUrl $result */ + foreach ($results as $result) { + $sitemapEvent = new SitemapEvent( + $result, + URL::getInstance()->absoluteUrl($result->getUrl()), + date('c', strtotime($result->getVirtualColumn('PRODUCT_UPDATE_AT'))) + ); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_EVENT, $sitemapEvent); + + if (!$sitemapEvent->isHide()){ + // Open new sitemap line & set brand URL & update date + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($result->getView()) + ->filterBySourceId($result->getViewId()) + ->findOne(); + + $sitemapPriorityValue = ($sitemapPriority === null) ? Sitemap::getConfigValue('default_priority_product_value', SiteMap::DEFAULT_PRIORITY_PRODUCT_VALUE) : $sitemapPriority->getValue(); + + $sitemap[] = ' + + '.$sitemapEvent->getLoc().' + '.$sitemapEvent->getLastmod().' + '.$sitemapPriorityValue.' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + '; + } + } + } + + /** + * Join products and their URLs + * + * @param RewritingUrlQuery $query + * + * @throws \Propel\Runtime\Exception\PropelException + */ + protected function addJoinProduct(RewritingUrlQuery &$query) + { + // Join RewritingURL with Product to have only visible products + $join = new Join(); + + $join->addExplicitCondition( + RewritingUrlTableMap::TABLE_NAME, + 'VIEW_ID', + null, + ProductTableMap::TABLE_NAME, + 'ID', + null + ); + + $join->setJoinType(Criteria::INNER_JOIN); + $query->addJoinObject($join, 'productJoin'); + + // Get only visible products + $query->addJoinCondition('productJoin', ProductTableMap::VISIBLE.' = 1'); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/SitemapConfigController.php b/local/modules/Sitemap/Controller/SitemapConfigController.php new file mode 100644 index 00000000..12b06c6e --- /dev/null +++ b/local/modules/Sitemap/Controller/SitemapConfigController.php @@ -0,0 +1,156 @@ + + */ +class SitemapConfigController extends BaseAdminController +{ + public function defaultAction() + { + if (null !== $response = $this->checkAuth([AdminResources::MODULE], ["sitemap"], AccessManager::VIEW)) { + return $response; + } + + // Get resize mode name + switch (Sitemap::getConfigValue('resize_mode')) { + case 1: + $resizeMode = 'borders'; + break; + + case 2: + $resizeMode = 'crop'; + break; + + case 3: + $resizeMode = 'none'; + break; + + default: + $resizeMode = ''; + break; + } + + // Build form + $form = $this->createForm( + "sitemap_config_form", + 'form', + [ + 'timeout' => Sitemap::getConfigValue('timeout'), + 'width' => Sitemap::getConfigValue('width'), + 'height' => Sitemap::getConfigValue('height'), + 'quality' => Sitemap::getConfigValue('quality'), + 'rotation' => Sitemap::getConfigValue('rotation'), + 'resize_mode' => $resizeMode, + 'background_color' => Sitemap::getConfigValue('background_color'), + 'allow_zoom' => Sitemap::getConfigValue('allow_zoom'), + 'exclude_empty_category' => Sitemap::getConfigValue('exclude_empty_category'), + 'exclude_empty_folder' => Sitemap::getConfigValue('exclude_empty_folder'), + 'default_priority_homepage_value' => Sitemap::getConfigValue('default_priority_homepage_value'), + 'default_priority_brand_value' => Sitemap::getConfigValue('default_priority_brand_value'), + 'default_priority_category_value' => Sitemap::getConfigValue('default_priority_category_value'), + 'default_priority_product_value' => Sitemap::getConfigValue('default_priority_product_value'), + 'default_priority_folder_value' => Sitemap::getConfigValue('default_priority_folder_value'), + 'default_update_frequency' => Sitemap::getConfigValue('default_update_frequency') + ] + ); + + $this->getParserContext()->addForm($form); + + return $this->render("sitemap-configuration"); + } + + /** + * Save data + * + * @return mixed|\Thelia\Core\HttpFoundation\Response + */ + public function saveAction() + { + if (null !== $response = $this->checkAuth([AdminResources::MODULE], ["sitemap"], AccessManager::UPDATE)) { + return $response; + } + + $baseForm = $this->createForm("sitemap_config_form"); + + $errorMessage = null; + + // Get current edition language locale + $locale = $this->getCurrentEditionLocale(); + + try { + $form = $this->validateForm($baseForm); + $data = $form->getData(); + + $excludeEmptyCategory = $data['exclude_empty_category'] == 1; + $excludeEmptyFolder = $data['exclude_empty_folder'] == 1; + + // Get resize mode + switch ($data["resize_mode"]) { + case 'none': + $resizeMode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; + break; + + case 'crop': + $resizeMode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; + break; + + case 'borders': + default: + $resizeMode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; + break; + } + + // Save data + Sitemap::setConfigValue('timeout', $data['timeout']); + Sitemap::setConfigValue('width', $data['width']); + Sitemap::setConfigValue('height', $data['height']); + Sitemap::setConfigValue('quality', $data['quality']); + Sitemap::setConfigValue('rotation', $data['rotation']); + Sitemap::setConfigValue('resize_mode', $resizeMode); + Sitemap::setConfigValue('background_color', $data['background_color']); + Sitemap::setConfigValue('allow_zoom', $data['allow_zoom']); + Sitemap::setConfigValue('exclude_empty_category', $excludeEmptyCategory); + Sitemap::setConfigValue('exclude_empty_folder', $excludeEmptyFolder); + Sitemap::setConfigValue('default_priority_homepage_value', $data['default_priority_homepage_value']); + Sitemap::setConfigValue('default_priority_brand_value', $data['default_priority_brand_value']); + Sitemap::setConfigValue('default_priority_category_value', $data['default_priority_category_value']); + Sitemap::setConfigValue('default_priority_product_value', $data['default_priority_product_value']); + Sitemap::setConfigValue('default_priority_folder_value', $data['default_priority_folder_value']); + Sitemap::setConfigValue('default_update_frequency', $data['default_update_frequency']); + + } catch (FormValidationException $ex) { + // Invalid data entered + $errorMessage = $this->createStandardFormValidationErrorMessage($ex); + } catch (\Exception $ex) { + // Any other error + $errorMessage = $this->getTranslator()->trans('Sorry, an error occurred: %err', ['%err' => $ex->getMessage()], Sitemap::DOMAIN_NAME, $locale); + } + + if (null !== $errorMessage) { + // Mark the form as with error + $baseForm->setErrorMessage($errorMessage); + + // Send the form and the error to the parser + $this->getParserContext() + ->addForm($baseForm) + ->setGeneralError($errorMessage) + ; + } else { + $this->getParserContext() + ->set("success", true) + ; + } + + return $this->defaultAction(); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Controller/SitemapController.php b/local/modules/Sitemap/Controller/SitemapController.php new file mode 100644 index 00000000..c2bab9a1 --- /dev/null +++ b/local/modules/Sitemap/Controller/SitemapController.php @@ -0,0 +1,284 @@ + + */ +class SitemapController extends BaseFrontController +{ + use CategorySitemapTrait; + use ProductSitemapTrait; + use FolderSitemapTrait; + use ContentSitemapTrait; + use BrandSitemapTrait; + + use ProductImageTrait; + + /** Folder name for sitemap cache */ + const SITEMAP_CACHE_DIR = "sitemap"; + + /** Key prefix for sitemap cache */ + const SITEMAP_CACHE_KEY = "sitemap"; + + /** Folder name for sitemap image cache */ + const SITEMAP_IMAGE_CACHE_DIR = "sitemap-image"; + + /** Key prefix for sitemap image cache */ + const SITEMAP_IMAGE_CACHE_KEY = "sitemap-image"; + + protected $useFallbackTemplate = true; + + /** + * Generate sitemap + */ + public function generateAction() + { + return $this->generateSitemap(self::SITEMAP_CACHE_KEY, self::SITEMAP_CACHE_DIR); + } + + /** + * Generate sitemap image + */ + public function generateImageAction() + { + return $this->generateSitemap(self::SITEMAP_IMAGE_CACHE_KEY, self::SITEMAP_IMAGE_CACHE_DIR); + } + + /** + * Check if cached sitemap can be used or generate a new one and cache it + * + * @param $cacheKey + * @param $cacheDirName + * @return Response + */ + public function generateSitemap($cacheKey, $cacheDirName) + { + // Get and check locale + $locale = $this->getSession()->getLang()->getLocale(); + + if ("" !== $locale) { + if (! $this->checkLang($locale)){ + $this->pageNotFound(); + } + } + + // Get sitemap cache information + $sitemapContent = false; + $cacheDir = $this->getCacheDir($cacheDirName); + $cacheKey .= $locale; + $cacheExpire = intval(ConfigQuery::read("sitemap_ttl", '7200')) ?: 7200; + $cacheDriver = new FilesystemCache($cacheDir); + + // Check if sitemap has to be deleted + if (!($this->checkAdmin() && "" !== $this->getRequest()->query->get("flush", ""))){ + // Get cached sitemap + $sitemapContent = $cacheDriver->fetch($cacheKey); + } else { + $cacheDriver->delete($cacheKey); + } + + // If not in cache, generate and cache it + if (false === $sitemapContent){ + + // Check if we generate the standard sitemap or the sitemap image + switch ($cacheDirName) { + // Image + case self::SITEMAP_IMAGE_CACHE_DIR: + $sitemap = $this->hydrateSitemapImage($locale); + break; + + // Standard + case self::SITEMAP_CACHE_DIR: + default: + $sitemap = $this->hydrateSitemap($locale); + break; + } + + $sitemapContent = implode("\n", $sitemap); + + // Save cache + $cacheDriver->save($cacheKey, $sitemapContent, $cacheExpire); + } + + // Render + $response = new Response(); + $response->setContent($sitemapContent); + $response->headers->set('Content-Type', 'application/xml'); + + return $response; + } + + /* ------------------ */ + + /** + * Build sitemap array + * + * @param $locale + * @return array + */ + protected function hydrateSitemap($locale) + { + // Begin sitemap + $sitemap = [' + + + + '.URL::getInstance()->getIndexPage().' + '.Sitemap::getConfigValue('default_priority_homepage_value', SiteMap::DEFAULT_PRIORITY_HOME_VALUE).' + '.Sitemap::getConfigValue('default_update_frequency', SiteMap::DEFAULT_FREQUENCY_UPDATE).' + ' + ]; + + // Hydrate sitemap + $this->setSitemapCategories($sitemap, $locale); + $this->setSitemapProducts($sitemap, $locale); + $this->setSitemapFolders($sitemap, $locale); + $this->setSitemapContents($sitemap, $locale); + $this->setSitemapBrands($sitemap, $locale); + + $event = new SitemapEndEvent(); + $event->setSitemap($sitemap); + + $this->getDispatcher()->dispatch(SitemapEvent::SITEMAP_END_EVENT, $event); + + $sitemap = $event->getSitemap(); + + // End sitemap + $sitemap[] = "\t".''; + + return $sitemap; + } + + /** + * Build sitemap image array + * + * @param $locale + * @return array + */ + protected function hydrateSitemapImage($locale) + { + // Begin sitemap image + $sitemap = [' + + + + '.URL::getInstance()->getIndexPage().' + ' + ]; + + // Hydrate sitemap image + $this->setSitemapProductImages($sitemap, $locale); + + // End sitemap image + $sitemap[] = "\t".''; + + return $sitemap; + } + + /* ------------------ */ + + /** + * @param $type + * @param RewritingUrl $result + * @param $configValues + * @param $sitemap + */ + protected function generateSitemapImage($type, $result, $configValues, &$sitemap) + { + $event = new ImageEvent(); + + $event + ->setWidth($configValues['width']) + ->setHeight($configValues['height']) + ->setQuality($configValues['quality']) + ->setRotation($configValues['rotation']) + ->setResizeMode($configValues['resizeMode']) + ->setBackgroundColor($configValues['bgColor']) + ->setAllowZoom($configValues['allowZoom']); + + // Put source image file path + $source_filepath = sprintf("%s%s/%s/%s", + THELIA_ROOT, + ConfigQuery::read('images_library_path', 'local/media/images'), + $type, + $result->getVirtualColumn('PRODUCT_FILE') + ); + + $event->setSourceFilepath($source_filepath); + $event->setCacheSubdirectory($type); + + try { + // Dispatch image processing event + $this->dispatch(TheliaEvents::IMAGE_PROCESS, $event); + + // New sitemap image entry + $sitemap[] = ' + + '.URL::getInstance()->absoluteUrl($result->getUrl()).' + + '.$event->getFileUrl().' + '.htmlspecialchars($result->getVirtualColumn('PRODUCT_TITLE')).' + + '; + + } catch (\Exception $ex) { + } + } + + /* ------------------ */ + + /** + * @param $locale + * @return bool true if the language is used, otherwise false + */ + protected function checkLang($locale) + { + // Load locales + $locale = LangQuery::create() + ->findOneByLocale($locale); + + return (null !== $locale); + } + + /** + * Get the cache directory for sitemap + * + * @param $cacheDirName + * @return mixed|string + */ + protected function getCacheDir($cacheDirName) + { + $cacheDir = $this->container->getParameter("kernel.cache_dir"); + $cacheDir = rtrim($cacheDir, '/'); + $cacheDir .= '/' . $cacheDirName . '/'; + + return $cacheDir; + } + + /** + * Check if current user has ADMIN role + * + * @return bool + */ + protected function checkAdmin(){ + return $this->getSecurityContext()->hasAdminUser(); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Event/SitemapEndEvent.php b/local/modules/Sitemap/Event/SitemapEndEvent.php new file mode 100644 index 00000000..56eb8804 --- /dev/null +++ b/local/modules/Sitemap/Event/SitemapEndEvent.php @@ -0,0 +1,26 @@ +sitemap; + } + + /** + * @param mixed $sitemap + */ + public function setSitemap($sitemap) + { + $this->sitemap = $sitemap; + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Event/SitemapEvent.php b/local/modules/Sitemap/Event/SitemapEvent.php new file mode 100644 index 00000000..1355b054 --- /dev/null +++ b/local/modules/Sitemap/Event/SitemapEvent.php @@ -0,0 +1,103 @@ +rewritingUrl = $rewritingUrl; + + $this->loc = $loc; + + $this->lastmod = $lastmod; + + $this->hide = $hide; + } + + /** + * @return RewritingUrl + */ + public function getRewritingUrl() + { + return $this->rewritingUrl; + } + + /** + * @param RewritingUrl $rewritingUrl + */ + public function setRewritingUrl($rewritingUrl) + { + $this->rewritingUrl = $rewritingUrl; + } + + + /** + * @return null + */ + public function getLoc() + { + return $this->loc; + } + + /** + * @param null $loc + */ + public function setLoc($loc) + { + $this->loc = $loc; + } + + /** + * @return null + */ + public function getLastmod() + { + return $this->lastmod; + } + + /** + * @param null $lastmod + */ + public function setLastmod($lastmod) + { + $this->lastmod = $lastmod; + } + + /** + * @return bool + */ + public function isHide() + { + return $this->hide; + } + + /** + * @param bool $hide + */ + public function setHide($hide) + { + $this->hide = $hide; + } + + +} \ No newline at end of file diff --git a/local/modules/Sitemap/EventListeners/EventManager.php b/local/modules/Sitemap/EventListeners/EventManager.php new file mode 100644 index 00000000..e8898c42 --- /dev/null +++ b/local/modules/Sitemap/EventListeners/EventManager.php @@ -0,0 +1,208 @@ +request = $request; + } + + public static function getSubscribedEvents() + { + return [ + TheliaEvents::PRODUCT_DELETE => [ 'deleteProduct' ], + TheliaEvents::CATEGORY_DELETE => [ 'deleteCategory' ], + TheliaEvents::CONTENT_DELETE => [ 'deleteContent' ], + TheliaEvents::FOLDER_DELETE => [ 'deleteFolder' ], + TheliaEvents::BRAND_DELETE => [ 'deleteBrand' ], + + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_product_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_product_modification" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_content_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_content_modification" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_category_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_category_modification" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_folder_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_folder_modification" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_brand_creation" => ['addFieldToForm', 128], + TheliaEvents::FORM_BEFORE_BUILD . ".thelia_brand_modification" => ['addFieldToForm', 128], + + TheliaEvents::PRODUCT_UPDATE => ['processProductFields', 100], + TheliaEvents::PRODUCT_CREATE => ['processProductFields', 100], + + TheliaEvents::CATEGORY_CREATE => ['processCategoryFields', 100], + TheliaEvents::CATEGORY_UPDATE => ['processCategoryFields', 100], + + TheliaEvents::CONTENT_CREATE => ['processContentFields', 100], + TheliaEvents::CONTENT_UPDATE => ['processContentFields', 100], + + TheliaEvents::FOLDER_CREATE => ['processFolderFields', 100], + TheliaEvents::FOLDER_UPDATE => ['processFolderFields', 100], + + TheliaEvents::BRAND_CREATE => ['processBrandFields', 100], + TheliaEvents::BRAND_UPDATE => ['processBrandFields', 100], + ]; + } + + public function addFieldToForm(TheliaFormEvent $event) + { + $event->getForm()->getFormBuilder()->add( + 'sitemapPriority', + 'text', + [ + 'required' => false, + 'label' => Translator::getInstance()->trans( + 'Sitemap priority', + [], + Sitemap::DOMAIN_NAME + ), + 'label_attr' => [ + 'help' => Translator::getInstance()->trans( + 'Enter a decimal number between 0 and 1 that will define the importance of the page.', + [], + Sitemap::DOMAIN_NAME + ) + ] + ] + ); + } + + public function processSitemap(ActionEvent $event, $source, $sourceId) + { + // Utilise le principe NON DOCUMENTE qui dit que si une form bindée à un event trouve + // un champ absent de l'event, elle le rend accessible à travers une méthode magique. + // (cf. ActionEvent::bindForm()) + + $sitemapPriority = SitemapPriorityQuery::create() + ->filterBySource($source) + ->filterBySourceId($sourceId) + ->findOneOrCreate(); + + $sitemapValue = $event->sitemapPriority; + + if (!empty($sitemapValue) && $sitemapPriority->getValue() !== $sitemapValue) { + $sitemapPriority + ->setValue($sitemapValue)->save(); + } + } + + public function processProductFields(ProductEvent $event) + { + if ($event->hasProduct()) { + $this->processSitemap($event, 'product', $event->getProduct()->getId()); + } + } + + public function processCategoryFields(CategoryEvent $event) + { + if ($event->hasCategory()) { + $this->processSitemap($event, 'category', $event->getCategory()->getId()); + } + } + + public function processFolderFields(FolderEvent $event) + { + if ($event->hasFolder()) { + $this->processSitemap($event, 'folder', $event->getFolder()->getId()); + } + } + + public function processContentFields(ContentEvent $event) + { + if ($event->hasContent()) { + $this->processSitemap($event, 'content', $event->getContent()->getId()); + } + } + + public function processBrandFields(BrandEvent $event) + { + if ($event->hasBrand()) { + $this->processSitemap($event, 'brand', $event->getBrand()->getId()); + } + } + + public function deleteProduct(ProductDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('product')->filterBySourceId($event->getProductId())->delete(); + } + + public function deleteCategory(CategoryDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('category')->filterBySourceId($event->getCategoryId())->delete(); + } + + public function deleteContent(ContentDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('content')->filterBySourceId($event->getContentId())->delete(); + } + + public function deleteFolder(FolderDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('folder')->filterBySourceId($event->getFolderId())->delete(); + } + + public function deleteBrand(BrandDeleteEvent $event) + { + SitemapPriorityQuery::create()->filterBySource('brand')->filterBySourceId($event->getBrandId())->delete(); + } +} diff --git a/local/modules/Sitemap/Form/SitemapConfigForm.php b/local/modules/Sitemap/Form/SitemapConfigForm.php new file mode 100644 index 00000000..09fe7c35 --- /dev/null +++ b/local/modules/Sitemap/Form/SitemapConfigForm.php @@ -0,0 +1,107 @@ + + */ +class SitemapConfigForm extends BaseForm +{ + public function getName() + { + return 'sitemap_config_form'; + } + + /** + * @return null + */ + protected function buildForm() + { + $this->formBuilder + ->add( + 'timeout', + 'number', + ['label' => $this->translator->trans('Script timeout (in seconds) for images generation (default: 30)', [], 'sitemap')] + ) + ->add( + 'width', + 'text', + ['label' => $this->translator->trans('Image width', [], 'sitemap')] + ) + ->add( + 'height', + 'text', + ['label' => $this->translator->trans('Image height', [], 'sitemap')] + ) + ->add( + 'quality', + 'text', + ['label' => $this->translator->trans('Image quality', [], 'sitemap')] + ) + ->add( + 'rotation', + 'text', + ['label' => $this->translator->trans('Image rotation', [], 'sitemap')] + ) + ->add( + 'resize_mode', + 'text', + ['label' => $this->translator->trans('Image resize mode ([borders] / crop / none)', [], 'sitemap')] + ) + ->add( + 'background_color', + 'text', + ['label' => $this->translator->trans('Image background color', [], 'sitemap')] + ) + ->add( + 'allow_zoom', + 'text', + ['label' => $this->translator->trans('Allow image zoom ([false] / true)', [], 'sitemap')] + ) + ->add( + 'exclude_empty_category', + 'text', + ['label' => $this->translator->trans('Do not include empty categories', [], 'sitemap')] + ) + ->add( + 'exclude_empty_folder', + 'text', + ['label' => $this->translator->trans('Do not include empty folders', [], 'sitemap')] + ) + ->add( + 'default_priority_homepage_value', + 'text', + ['label' => $this->translator->trans('Default home page priority', [], 'sitemap')] + ) + ->add( + 'default_priority_brand_value', + 'text', + ['label' => $this->translator->trans('Default brand page priority', [], 'sitemap')] + ) + ->add( + 'default_priority_category_value', + 'text', + ['label' => $this->translator->trans('Default category page priority', [], 'sitemap')] + ) + ->add( + 'default_priority_product_value', + 'text', + ['label' => $this->translator->trans('Default product page priority', [], 'sitemap')] + ) + ->add( + 'default_priority_folder_value', + 'text', + ['label' => $this->translator->trans('Default folder page priority', [], 'sitemap')] + ) + ->add( + 'default_update_frequency', + 'text', + ['label' => $this->translator->trans('Default page update frequency (always / hourly / daily / weekly / monthly / yearly / never)', [], 'sitemap')] + ) + ; + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/Hook/SitemapHook.php b/local/modules/Sitemap/Hook/SitemapHook.php new file mode 100644 index 00000000..0fd6bb3e --- /dev/null +++ b/local/modules/Sitemap/Hook/SitemapHook.php @@ -0,0 +1,81 @@ + + */ +class SitemapHook extends BaseHook +{ + private function processFieldHook(HookRenderEvent $event, $sourceType, $sourceId) + { + $sitemap = SitemapPriorityQuery::create() + ->filterBySource($sourceType) + ->filterBySourceId($sourceId) + ->findOne(); + switch ($sourceType) { + case 'brand': + $sitemapConfigValue = Sitemap::getConfigValue('default_priority_brand_value', SiteMap::DEFAULT_PRIORITY_BRAND_VALUE); + break; + case 'category': + $sitemapConfigValue = Sitemap::getConfigValue('default_priority_category_value', SiteMap::DEFAULT_PRIORITY_CATEGORY_VALUE); + break; + case 'product': + $sitemapConfigValue = Sitemap::getConfigValue('default_priority_product_value', SiteMap::DEFAULT_PRIORITY_PRODUCT_VALUE); + break; + case 'folder': + case 'content': + default: + $sitemapConfigValue = Sitemap::getConfigValue('default_priority_folder_value', SiteMap::DEFAULT_PRIORITY_FOLDER_VALUE); + break; + } + $sitemapValue = (null === $sitemap || empty($sitemap->getValue())) ? $sitemapConfigValue : $sitemap->getValue(); + + $event->add( + $this->render( + "generic-sitemap-definition.html", + [ + 'sitemapPriority' => $sitemapValue + ] + ) + ); + } + + public function onModuleConfig(HookRenderEvent $event) + { + $event->add($this->render('sitemap-configuration.html')); + } + + public function onProductEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'product', $event->getArgument('product_id')); + } + + public function onCategoryEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'category', $event->getArgument('category_id')); + } + + public function onContentEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'content', $event->getArgument('content_id')); + } + + public function onFolderEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'folder', $event->getArgument('folder_id')); + } + public function onBrandEditRightColumnBottom(HookRenderEvent $event) + { + $this->processFieldHook($event, 'brand', $event->getArgument('brand_id')); + } +} \ No newline at end of file diff --git a/local/modules/Sitemap/I18n/backOffice/default/en_US.php b/local/modules/Sitemap/I18n/backOffice/default/en_US.php new file mode 100644 index 00000000..52c58c3c --- /dev/null +++ b/local/modules/Sitemap/I18n/backOffice/default/en_US.php @@ -0,0 +1,12 @@ +Warning! Only fill this input with a greater value than 30 if you have so many images that the sitemap-image can\'t be generated because of timeout.' => 'Warning! Only fill this input with a greater value than 30 if you have so many images that the sitemap-image can\'t be generated because of timeout.', + 'Configuration correctly saved' => 'Configuration correctly saved', + 'Configure sitemap images' => 'Configure sitemap images', + 'Depending on your server, this may have no effect.' => 'Depending on your server, this may have no effect.', + 'Home' => 'Home', + 'Modules' => 'Modules', + 'Set the same information as in your product image loop' => 'Set the same information as in your product image loop', + 'Sitemap images configuration' => 'Sitemap images configuration', +); diff --git a/local/modules/Sitemap/I18n/backOffice/default/fr_FR.php b/local/modules/Sitemap/I18n/backOffice/default/fr_FR.php new file mode 100644 index 00000000..7cb43f8a --- /dev/null +++ b/local/modules/Sitemap/I18n/backOffice/default/fr_FR.php @@ -0,0 +1,13 @@ +Warning! Only fill this input with a greater value than 30 if you have so many images that the sitemap-image can\'t be generated because of timeout.' => 'Attention ! Ne remplissez ce champ avec une valeur plus grande que 30 que si vous avez beaucoup d\'images et que le sitemap-image n\'arrive pas à se générer.', + 'Configuration correctly saved' => 'Configuration sauvegardée avec succès', + 'Configure sitemap' => 'Configurer le sitemap', + 'Configure sitemap images' => 'Configurer les images du sitemap', + 'Depending on your server, this may have no effect.' => 'En fonction de votre serveur, cela pourrait n\'avoir aucun effet.', + 'Home' => 'Accueil', + 'Modules' => 'Modules', + 'Set the same information as in your product image loop' => 'Entrez les mêmes informations que dans la boucle image des produits', + 'Sitemap images configuration' => 'Configuration des images du module Sitemap', +); diff --git a/local/modules/Sitemap/I18n/en_US.php b/local/modules/Sitemap/I18n/en_US.php new file mode 100644 index 00000000..b308b8eb --- /dev/null +++ b/local/modules/Sitemap/I18n/en_US.php @@ -0,0 +1,21 @@ + 'Allow image zoom ([false] / true)', + 'Image background color' => 'Image background color', + 'Image height' => 'Image height', + 'Image quality' => 'Image quality', + 'Image resize mode ([borders] / crop / none)' => 'Image resize mode ([borders] / crop / none)', + 'Image rotation' => 'Image rotation', + 'Image width' => 'Image width', + 'Script timeout (in seconds) for images generation (default: 30)' => 'Script timeout (in seconds) for images generation (default: 30)', + 'Sorry, an error occurred: %err' => 'Sorry, an error occurred: %err', + 'Sitemap priority' => 'Sitemap priority', + 'Default home page priority' => 'Default home page priority', + 'Default folder page priority' => 'Default folder page priority', + 'Default category page priority' => 'Default category page priority', + 'Default product page priority' => 'Default product page priority', + 'Default brand page priority' => 'Default brand page priority', + 'Default page update frequency (always / hourly / daily / weekly / monthly / yearly / never)' => 'Default page update frequency (always / hourly / daily / weekly / monthly / yearly / never)', + 'Enter a decimal number between 0 and 1 that will define the importance of the page.' => 'Enter a decimal number between 0 and 1 that will define the importance of the page.', +); diff --git a/local/modules/Sitemap/I18n/fr_FR.php b/local/modules/Sitemap/I18n/fr_FR.php new file mode 100644 index 00000000..71252567 --- /dev/null +++ b/local/modules/Sitemap/I18n/fr_FR.php @@ -0,0 +1,23 @@ + 'Autoriser le zoom des images ([false] / true)', + 'Do not include empty categories' => 'Ne pas inclure les catégories vides', + 'Do not include empty folders' => 'Ne pas inclure les dossiers vides', + 'Image background color' => 'Couleur de fond des images', + 'Image height' => 'Hauteur des images', + 'Image quality' => 'Qualité des images', + 'Image resize mode ([borders] / crop / none)' => 'Mode de redimensionnement des images ([borders] / crop / none)', + 'Image rotation' => 'Rotation des images', + 'Image width' => 'Largeur des images', + 'Script timeout (in seconds) for images generation (default: 30)' => 'Temps maximum d\'exécution (en secondes) pour la génération des images (par défaut : 30)', + 'Sorry, an error occurred: %err' => 'Désolé, une erreur s\'est produite : %err', + 'Default home page priority' => 'Priorité par défaut des pages d\'accueil', + 'Default folder page priority' => 'Priorité par défaut des pages dossiers', + 'Default category page priority' => 'Priorité par défaut des pages catégories', + 'Default product page priority' => 'Priorité par défaut des pages produits', + 'Default brand page priority' => 'Priorité par défaut des pages marques', + 'Default page update frequency (always / hourly / daily / weekly / monthly / yearly / never)' => 'Fréquence de mise à jour par défaut des pages (always / hourly / daily / weekly / monthly / yearly / never)', + 'Sitemap priority' => 'Sitemap priorité', + 'Enter a decimal number between 0 and 1 that will define the importance of the page.' => 'Indiquez un nombre décimal entre 0 et 1 qui définira l\'importance de la page.', +); diff --git a/local/modules/modules/Carousel/Model/Base/CarouselI18n.php b/local/modules/Sitemap/Model/Base/SitemapPriority.php similarity index 66% rename from local/modules/modules/Carousel/Model/Base/CarouselI18n.php rename to local/modules/Sitemap/Model/Base/SitemapPriority.php index 0f993bf8..55259f01 100644 --- a/local/modules/modules/Carousel/Model/Base/CarouselI18n.php +++ b/local/modules/Sitemap/Model/Base/SitemapPriority.php @@ -1,13 +1,10 @@ locale = 'en_US'; - } - - /** - * Initializes internal state of Carousel\Model\Base\CarouselI18n object. - * @see applyDefaults() + * Initializes internal state of Sitemap\Model\Base\SitemapPriority object. */ public function __construct() { - $this->applyDefaultValues(); } /** @@ -218,9 +194,9 @@ abstract class CarouselI18n implements ActiveRecordInterface } /** - * Compares this with another CarouselI18n instance. If - * obj is an instance of CarouselI18n, delegates to - * equals(CarouselI18n). Otherwise, returns false. + * Compares this with another SitemapPriority instance. If + * obj is an instance of SitemapPriority, delegates to + * equals(SitemapPriority). Otherwise, returns false. * * @param mixed $obj The object to compare to. * @return boolean Whether equal to the object specified. @@ -303,7 +279,7 @@ abstract class CarouselI18n implements ActiveRecordInterface * @param string $name The virtual column name * @param mixed $value The value to give to the virtual column * - * @return CarouselI18n The current object, for fluid interface + * @return SitemapPriority The current object, for fluid interface */ public function setVirtualColumn($name, $value) { @@ -335,7 +311,7 @@ abstract class CarouselI18n implements ActiveRecordInterface * or a format name ('XML', 'YAML', 'JSON', 'CSV') * @param string $data The source data to import from * - * @return CarouselI18n The current object, for fluid interface + * @return SitemapPriority The current object, for fluid interface */ public function importFrom($parser, $data) { @@ -392,76 +368,83 @@ abstract class CarouselI18n implements ActiveRecordInterface } /** - * Get the [locale] column value. + * Get the [value] column value. * - * @return string + * @return double */ - public function getLocale() + public function getValue() { - return $this->locale; + return $this->value; } /** - * Get the [alt] column value. + * Get the [source] column value. * * @return string */ - public function getAlt() + public function getSource() { - return $this->alt; + return $this->source; } /** - * Get the [title] column value. + * Get the [source_id] column value. * - * @return string + * @return int */ - public function getTitle() + public function getSourceId() { - return $this->title; + return $this->source_id; } /** - * Get the [description] column value. + * Get the [optionally formatted] temporal [created_at] column value. * - * @return string + * + * @param string $format The date/time format string (either date()-style or strftime()-style). + * If format is NULL, then the raw \DateTime object will be returned. + * + * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 + * + * @throws PropelException - if unable to parse/validate the date/time value. */ - public function getDescription() + public function getCreatedAt($format = NULL) { - - return $this->description; + if ($format === null) { + return $this->created_at; + } else { + return $this->created_at instanceof \DateTime ? $this->created_at->format($format) : null; + } } /** - * Get the [chapo] column value. + * Get the [optionally formatted] temporal [updated_at] column value. * - * @return string - */ - public function getChapo() - { - - return $this->chapo; - } - - /** - * Get the [postscriptum] column value. * - * @return string + * @param string $format The date/time format string (either date()-style or strftime()-style). + * If format is NULL, then the raw \DateTime object will be returned. + * + * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 + * + * @throws PropelException - if unable to parse/validate the date/time value. */ - public function getPostscriptum() + public function getUpdatedAt($format = NULL) { - - return $this->postscriptum; + if ($format === null) { + return $this->updated_at; + } else { + return $this->updated_at instanceof \DateTime ? $this->updated_at->format($format) : null; + } } /** * Set the value of [id] column. * * @param int $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ public function setId($v) { @@ -471,11 +454,7 @@ abstract class CarouselI18n implements ActiveRecordInterface if ($this->id !== $v) { $this->id = $v; - $this->modifiedColumns[CarouselI18nTableMap::ID] = true; - } - - if ($this->aCarousel !== null && $this->aCarousel->getId() !== $v) { - $this->aCarousel = null; + $this->modifiedColumns[SitemapPriorityTableMap::ID] = true; } @@ -483,130 +462,109 @@ abstract class CarouselI18n implements ActiveRecordInterface } // setId() /** - * Set the value of [locale] column. + * Set the value of [value] column. * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @param double $v new value + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setLocale($v) + public function setValue($v) { if ($v !== null) { - $v = (string) $v; + $v = (double) $v; } - if ($this->locale !== $v) { - $this->locale = $v; - $this->modifiedColumns[CarouselI18nTableMap::LOCALE] = true; + if ($this->value !== $v) { + $this->value = $v; + $this->modifiedColumns[SitemapPriorityTableMap::VALUE] = true; } return $this; - } // setLocale() + } // setValue() /** - * Set the value of [alt] column. + * Set the value of [source] column. * * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setAlt($v) + public function setSource($v) { if ($v !== null) { $v = (string) $v; } - if ($this->alt !== $v) { - $this->alt = $v; - $this->modifiedColumns[CarouselI18nTableMap::ALT] = true; + if ($this->source !== $v) { + $this->source = $v; + $this->modifiedColumns[SitemapPriorityTableMap::SOURCE] = true; } return $this; - } // setAlt() + } // setSource() /** - * Set the value of [title] column. + * Set the value of [source_id] column. * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @param int $v new value + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setTitle($v) + public function setSourceId($v) { if ($v !== null) { - $v = (string) $v; + $v = (int) $v; } - if ($this->title !== $v) { - $this->title = $v; - $this->modifiedColumns[CarouselI18nTableMap::TITLE] = true; + if ($this->source_id !== $v) { + $this->source_id = $v; + $this->modifiedColumns[SitemapPriorityTableMap::SOURCE_ID] = true; } return $this; - } // setTitle() + } // setSourceId() /** - * Set the value of [description] column. + * Sets the value of [created_at] column to a normalized version of the date/time value specified. * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @param mixed $v string, integer (timestamp), or \DateTime value. + * Empty strings are treated as NULL. + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setDescription($v) + public function setCreatedAt($v) { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->description !== $v) { - $this->description = $v; - $this->modifiedColumns[CarouselI18nTableMap::DESCRIPTION] = true; - } + $dt = PropelDateTime::newInstance($v, null, '\DateTime'); + if ($this->created_at !== null || $dt !== null) { + if ($dt !== $this->created_at) { + $this->created_at = $dt; + $this->modifiedColumns[SitemapPriorityTableMap::CREATED_AT] = true; + } + } // if either are not null return $this; - } // setDescription() + } // setCreatedAt() /** - * Set the value of [chapo] column. + * Sets the value of [updated_at] column to a normalized version of the date/time value specified. * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) + * @param mixed $v string, integer (timestamp), or \DateTime value. + * Empty strings are treated as NULL. + * @return \Sitemap\Model\SitemapPriority The current object (for fluent API support) */ - public function setChapo($v) + public function setUpdatedAt($v) { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->chapo !== $v) { - $this->chapo = $v; - $this->modifiedColumns[CarouselI18nTableMap::CHAPO] = true; - } + $dt = PropelDateTime::newInstance($v, null, '\DateTime'); + if ($this->updated_at !== null || $dt !== null) { + if ($dt !== $this->updated_at) { + $this->updated_at = $dt; + $this->modifiedColumns[SitemapPriorityTableMap::UPDATED_AT] = true; + } + } // if either are not null return $this; - } // setChapo() - - /** - * Set the value of [postscriptum] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setPostscriptum($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->postscriptum !== $v) { - $this->postscriptum = $v; - $this->modifiedColumns[CarouselI18nTableMap::POSTSCRIPTUM] = true; - } - - - return $this; - } // setPostscriptum() + } // setUpdatedAt() /** * Indicates whether the columns in this object are only set to default values. @@ -618,10 +576,6 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function hasOnlyDefaultValues() { - if ($this->locale !== 'en_US') { - return false; - } - // otherwise, everything was equal, so return TRUE return true; } // hasOnlyDefaultValues() @@ -649,26 +603,29 @@ abstract class CarouselI18n implements ActiveRecordInterface try { - $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : CarouselI18nTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; + $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : SitemapPriorityTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; $this->id = (null !== $col) ? (int) $col : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CarouselI18nTableMap::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)]; - $this->locale = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : SitemapPriorityTableMap::translateFieldName('Value', TableMap::TYPE_PHPNAME, $indexType)]; + $this->value = (null !== $col) ? (double) $col : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CarouselI18nTableMap::translateFieldName('Alt', TableMap::TYPE_PHPNAME, $indexType)]; - $this->alt = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : SitemapPriorityTableMap::translateFieldName('Source', TableMap::TYPE_PHPNAME, $indexType)]; + $this->source = (null !== $col) ? (string) $col : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CarouselI18nTableMap::translateFieldName('Title', TableMap::TYPE_PHPNAME, $indexType)]; - $this->title = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : SitemapPriorityTableMap::translateFieldName('SourceId', TableMap::TYPE_PHPNAME, $indexType)]; + $this->source_id = (null !== $col) ? (int) $col : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CarouselI18nTableMap::translateFieldName('Description', TableMap::TYPE_PHPNAME, $indexType)]; - $this->description = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : SitemapPriorityTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)]; + if ($col === '0000-00-00 00:00:00') { + $col = null; + } + $this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CarouselI18nTableMap::translateFieldName('Chapo', TableMap::TYPE_PHPNAME, $indexType)]; - $this->chapo = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 6 + $startcol : CarouselI18nTableMap::translateFieldName('Postscriptum', TableMap::TYPE_PHPNAME, $indexType)]; - $this->postscriptum = (null !== $col) ? (string) $col : null; + $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : SitemapPriorityTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)]; + if ($col === '0000-00-00 00:00:00') { + $col = null; + } + $this->updated_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; $this->resetModified(); $this->setNew(false); @@ -677,10 +634,10 @@ abstract class CarouselI18n implements ActiveRecordInterface $this->ensureConsistency(); } - return $startcol + 7; // 7 = CarouselI18nTableMap::NUM_HYDRATE_COLUMNS. + return $startcol + 6; // 6 = SitemapPriorityTableMap::NUM_HYDRATE_COLUMNS. } catch (Exception $e) { - throw new PropelException("Error populating \Carousel\Model\CarouselI18n object", 0, $e); + throw new PropelException("Error populating \Sitemap\Model\SitemapPriority object", 0, $e); } } @@ -699,9 +656,6 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function ensureConsistency() { - if ($this->aCarousel !== null && $this->id !== $this->aCarousel->getId()) { - $this->aCarousel = null; - } } // ensureConsistency /** @@ -725,13 +679,13 @@ abstract class CarouselI18n implements ActiveRecordInterface } if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselI18nTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getReadConnection(SitemapPriorityTableMap::DATABASE_NAME); } // We don't need to alter the object instance pool; we're just modifying this instance // already in the pool. - $dataFetcher = ChildCarouselI18nQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); + $dataFetcher = ChildSitemapPriorityQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); $row = $dataFetcher->fetch(); $dataFetcher->close(); if (!$row) { @@ -741,7 +695,6 @@ abstract class CarouselI18n implements ActiveRecordInterface if ($deep) { // also de-associate any related objects? - $this->aCarousel = null; } // if (deep) } @@ -751,8 +704,8 @@ abstract class CarouselI18n implements ActiveRecordInterface * @param ConnectionInterface $con * @return void * @throws PropelException - * @see CarouselI18n::setDeleted() - * @see CarouselI18n::isDeleted() + * @see SitemapPriority::setDeleted() + * @see SitemapPriority::isDeleted() */ public function delete(ConnectionInterface $con = null) { @@ -761,12 +714,12 @@ abstract class CarouselI18n implements ActiveRecordInterface } if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); } $con->beginTransaction(); try { - $deleteQuery = ChildCarouselI18nQuery::create() + $deleteQuery = ChildSitemapPriorityQuery::create() ->filterByPrimaryKey($this->getPrimaryKey()); $ret = $this->preDelete($con); if ($ret) { @@ -803,7 +756,7 @@ abstract class CarouselI18n implements ActiveRecordInterface } if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); } $con->beginTransaction(); @@ -812,8 +765,19 @@ abstract class CarouselI18n implements ActiveRecordInterface $ret = $this->preSave($con); if ($isInsert) { $ret = $ret && $this->preInsert($con); + // timestampable behavior + if (!$this->isColumnModified(SitemapPriorityTableMap::CREATED_AT)) { + $this->setCreatedAt(time()); + } + if (!$this->isColumnModified(SitemapPriorityTableMap::UPDATED_AT)) { + $this->setUpdatedAt(time()); + } } else { $ret = $ret && $this->preUpdate($con); + // timestampable behavior + if ($this->isModified() && !$this->isColumnModified(SitemapPriorityTableMap::UPDATED_AT)) { + $this->setUpdatedAt(time()); + } } if ($ret) { $affectedRows = $this->doSave($con); @@ -823,7 +787,7 @@ abstract class CarouselI18n implements ActiveRecordInterface $this->postUpdate($con); } $this->postSave($con); - CarouselI18nTableMap::addInstanceToPool($this); + SitemapPriorityTableMap::addInstanceToPool($this); } else { $affectedRows = 0; } @@ -853,18 +817,6 @@ abstract class CarouselI18n implements ActiveRecordInterface if (!$this->alreadyInSave) { $this->alreadyInSave = true; - // We call the save method on the following object(s) if they - // were passed to this object by their corresponding set - // method. This object relates to these object(s) by a - // foreign key reference. - - if ($this->aCarousel !== null) { - if ($this->aCarousel->isModified() || $this->aCarousel->isNew()) { - $affectedRows += $this->aCarousel->save($con); - } - $this->setCarousel($this->aCarousel); - } - if ($this->isNew() || $this->isModified()) { // persist changes if ($this->isNew()) { @@ -896,32 +848,33 @@ abstract class CarouselI18n implements ActiveRecordInterface $modifiedColumns = array(); $index = 0; + $this->modifiedColumns[SitemapPriorityTableMap::ID] = true; + if (null !== $this->id) { + throw new PropelException('Cannot insert a value for auto-increment primary key (' . SitemapPriorityTableMap::ID . ')'); + } // check the columns in natural order for more readable SQL queries - if ($this->isColumnModified(CarouselI18nTableMap::ID)) { + if ($this->isColumnModified(SitemapPriorityTableMap::ID)) { $modifiedColumns[':p' . $index++] = 'ID'; } - if ($this->isColumnModified(CarouselI18nTableMap::LOCALE)) { - $modifiedColumns[':p' . $index++] = 'LOCALE'; + if ($this->isColumnModified(SitemapPriorityTableMap::VALUE)) { + $modifiedColumns[':p' . $index++] = 'VALUE'; } - if ($this->isColumnModified(CarouselI18nTableMap::ALT)) { - $modifiedColumns[':p' . $index++] = 'ALT'; + if ($this->isColumnModified(SitemapPriorityTableMap::SOURCE)) { + $modifiedColumns[':p' . $index++] = 'SOURCE'; } - if ($this->isColumnModified(CarouselI18nTableMap::TITLE)) { - $modifiedColumns[':p' . $index++] = 'TITLE'; + if ($this->isColumnModified(SitemapPriorityTableMap::SOURCE_ID)) { + $modifiedColumns[':p' . $index++] = 'SOURCE_ID'; } - if ($this->isColumnModified(CarouselI18nTableMap::DESCRIPTION)) { - $modifiedColumns[':p' . $index++] = 'DESCRIPTION'; + if ($this->isColumnModified(SitemapPriorityTableMap::CREATED_AT)) { + $modifiedColumns[':p' . $index++] = 'CREATED_AT'; } - if ($this->isColumnModified(CarouselI18nTableMap::CHAPO)) { - $modifiedColumns[':p' . $index++] = 'CHAPO'; - } - if ($this->isColumnModified(CarouselI18nTableMap::POSTSCRIPTUM)) { - $modifiedColumns[':p' . $index++] = 'POSTSCRIPTUM'; + if ($this->isColumnModified(SitemapPriorityTableMap::UPDATED_AT)) { + $modifiedColumns[':p' . $index++] = 'UPDATED_AT'; } $sql = sprintf( - 'INSERT INTO carousel_i18n (%s) VALUES (%s)', + 'INSERT INTO sitemap_priority (%s) VALUES (%s)', implode(', ', $modifiedColumns), implode(', ', array_keys($modifiedColumns)) ); @@ -933,23 +886,20 @@ abstract class CarouselI18n implements ActiveRecordInterface case 'ID': $stmt->bindValue($identifier, $this->id, PDO::PARAM_INT); break; - case 'LOCALE': - $stmt->bindValue($identifier, $this->locale, PDO::PARAM_STR); + case 'VALUE': + $stmt->bindValue($identifier, $this->value, PDO::PARAM_STR); break; - case 'ALT': - $stmt->bindValue($identifier, $this->alt, PDO::PARAM_STR); + case 'SOURCE': + $stmt->bindValue($identifier, $this->source, PDO::PARAM_STR); break; - case 'TITLE': - $stmt->bindValue($identifier, $this->title, PDO::PARAM_STR); + case 'SOURCE_ID': + $stmt->bindValue($identifier, $this->source_id, PDO::PARAM_INT); break; - case 'DESCRIPTION': - $stmt->bindValue($identifier, $this->description, PDO::PARAM_STR); + case 'CREATED_AT': + $stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); break; - case 'CHAPO': - $stmt->bindValue($identifier, $this->chapo, PDO::PARAM_STR); - break; - case 'POSTSCRIPTUM': - $stmt->bindValue($identifier, $this->postscriptum, PDO::PARAM_STR); + case 'UPDATED_AT': + $stmt->bindValue($identifier, $this->updated_at ? $this->updated_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); break; } } @@ -959,6 +909,13 @@ abstract class CarouselI18n implements ActiveRecordInterface throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), 0, $e); } + try { + $pk = $con->lastInsertId(); + } catch (Exception $e) { + throw new PropelException('Unable to get autoincrement id.', 0, $e); + } + $this->setId($pk); + $this->setNew(false); } @@ -990,7 +947,7 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function getByName($name, $type = TableMap::TYPE_PHPNAME) { - $pos = CarouselI18nTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); + $pos = SitemapPriorityTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); $field = $this->getByPosition($pos); return $field; @@ -1010,22 +967,19 @@ abstract class CarouselI18n implements ActiveRecordInterface return $this->getId(); break; case 1: - return $this->getLocale(); + return $this->getValue(); break; case 2: - return $this->getAlt(); + return $this->getSource(); break; case 3: - return $this->getTitle(); + return $this->getSourceId(); break; case 4: - return $this->getDescription(); + return $this->getCreatedAt(); break; case 5: - return $this->getChapo(); - break; - case 6: - return $this->getPostscriptum(); + return $this->getUpdatedAt(); break; default: return null; @@ -1044,36 +998,29 @@ abstract class CarouselI18n implements ActiveRecordInterface * Defaults to TableMap::TYPE_PHPNAME. * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to TRUE. * @param array $alreadyDumpedObjects List of objects to skip to avoid recursion - * @param boolean $includeForeignObjects (optional) Whether to include hydrated related objects. Default to FALSE. * * @return array an associative array containing the field names (as keys) and field values */ - public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false) + public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array()) { - if (isset($alreadyDumpedObjects['CarouselI18n'][serialize($this->getPrimaryKey())])) { + if (isset($alreadyDumpedObjects['SitemapPriority'][$this->getPrimaryKey()])) { return '*RECURSION*'; } - $alreadyDumpedObjects['CarouselI18n'][serialize($this->getPrimaryKey())] = true; - $keys = CarouselI18nTableMap::getFieldNames($keyType); + $alreadyDumpedObjects['SitemapPriority'][$this->getPrimaryKey()] = true; + $keys = SitemapPriorityTableMap::getFieldNames($keyType); $result = array( $keys[0] => $this->getId(), - $keys[1] => $this->getLocale(), - $keys[2] => $this->getAlt(), - $keys[3] => $this->getTitle(), - $keys[4] => $this->getDescription(), - $keys[5] => $this->getChapo(), - $keys[6] => $this->getPostscriptum(), + $keys[1] => $this->getValue(), + $keys[2] => $this->getSource(), + $keys[3] => $this->getSourceId(), + $keys[4] => $this->getCreatedAt(), + $keys[5] => $this->getUpdatedAt(), ); $virtualColumns = $this->virtualColumns; foreach ($virtualColumns as $key => $virtualColumn) { $result[$key] = $virtualColumn; } - if ($includeForeignObjects) { - if (null !== $this->aCarousel) { - $result['Carousel'] = $this->aCarousel->toArray($keyType, $includeLazyLoadColumns, $alreadyDumpedObjects, true); - } - } return $result; } @@ -1091,7 +1038,7 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function setByName($name, $value, $type = TableMap::TYPE_PHPNAME) { - $pos = CarouselI18nTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); + $pos = SitemapPriorityTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); return $this->setByPosition($pos, $value); } @@ -1111,22 +1058,19 @@ abstract class CarouselI18n implements ActiveRecordInterface $this->setId($value); break; case 1: - $this->setLocale($value); + $this->setValue($value); break; case 2: - $this->setAlt($value); + $this->setSource($value); break; case 3: - $this->setTitle($value); + $this->setSourceId($value); break; case 4: - $this->setDescription($value); + $this->setCreatedAt($value); break; case 5: - $this->setChapo($value); - break; - case 6: - $this->setPostscriptum($value); + $this->setUpdatedAt($value); break; } // switch() } @@ -1150,15 +1094,14 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function fromArray($arr, $keyType = TableMap::TYPE_PHPNAME) { - $keys = CarouselI18nTableMap::getFieldNames($keyType); + $keys = SitemapPriorityTableMap::getFieldNames($keyType); if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]); - if (array_key_exists($keys[1], $arr)) $this->setLocale($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setAlt($arr[$keys[2]]); - if (array_key_exists($keys[3], $arr)) $this->setTitle($arr[$keys[3]]); - if (array_key_exists($keys[4], $arr)) $this->setDescription($arr[$keys[4]]); - if (array_key_exists($keys[5], $arr)) $this->setChapo($arr[$keys[5]]); - if (array_key_exists($keys[6], $arr)) $this->setPostscriptum($arr[$keys[6]]); + if (array_key_exists($keys[1], $arr)) $this->setValue($arr[$keys[1]]); + if (array_key_exists($keys[2], $arr)) $this->setSource($arr[$keys[2]]); + if (array_key_exists($keys[3], $arr)) $this->setSourceId($arr[$keys[3]]); + if (array_key_exists($keys[4], $arr)) $this->setCreatedAt($arr[$keys[4]]); + if (array_key_exists($keys[5], $arr)) $this->setUpdatedAt($arr[$keys[5]]); } /** @@ -1168,15 +1111,14 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function buildCriteria() { - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); + $criteria = new Criteria(SitemapPriorityTableMap::DATABASE_NAME); - if ($this->isColumnModified(CarouselI18nTableMap::ID)) $criteria->add(CarouselI18nTableMap::ID, $this->id); - if ($this->isColumnModified(CarouselI18nTableMap::LOCALE)) $criteria->add(CarouselI18nTableMap::LOCALE, $this->locale); - if ($this->isColumnModified(CarouselI18nTableMap::ALT)) $criteria->add(CarouselI18nTableMap::ALT, $this->alt); - if ($this->isColumnModified(CarouselI18nTableMap::TITLE)) $criteria->add(CarouselI18nTableMap::TITLE, $this->title); - if ($this->isColumnModified(CarouselI18nTableMap::DESCRIPTION)) $criteria->add(CarouselI18nTableMap::DESCRIPTION, $this->description); - if ($this->isColumnModified(CarouselI18nTableMap::CHAPO)) $criteria->add(CarouselI18nTableMap::CHAPO, $this->chapo); - if ($this->isColumnModified(CarouselI18nTableMap::POSTSCRIPTUM)) $criteria->add(CarouselI18nTableMap::POSTSCRIPTUM, $this->postscriptum); + if ($this->isColumnModified(SitemapPriorityTableMap::ID)) $criteria->add(SitemapPriorityTableMap::ID, $this->id); + if ($this->isColumnModified(SitemapPriorityTableMap::VALUE)) $criteria->add(SitemapPriorityTableMap::VALUE, $this->value); + if ($this->isColumnModified(SitemapPriorityTableMap::SOURCE)) $criteria->add(SitemapPriorityTableMap::SOURCE, $this->source); + if ($this->isColumnModified(SitemapPriorityTableMap::SOURCE_ID)) $criteria->add(SitemapPriorityTableMap::SOURCE_ID, $this->source_id); + if ($this->isColumnModified(SitemapPriorityTableMap::CREATED_AT)) $criteria->add(SitemapPriorityTableMap::CREATED_AT, $this->created_at); + if ($this->isColumnModified(SitemapPriorityTableMap::UPDATED_AT)) $criteria->add(SitemapPriorityTableMap::UPDATED_AT, $this->updated_at); return $criteria; } @@ -1191,37 +1133,30 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function buildPkeyCriteria() { - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - $criteria->add(CarouselI18nTableMap::ID, $this->id); - $criteria->add(CarouselI18nTableMap::LOCALE, $this->locale); + $criteria = new Criteria(SitemapPriorityTableMap::DATABASE_NAME); + $criteria->add(SitemapPriorityTableMap::ID, $this->id); return $criteria; } /** - * Returns the composite primary key for this object. - * The array elements will be in same order as specified in XML. - * @return array + * Returns the primary key for this object (row). + * @return int */ public function getPrimaryKey() { - $pks = array(); - $pks[0] = $this->getId(); - $pks[1] = $this->getLocale(); - - return $pks; + return $this->getId(); } /** - * Set the [composite] primary key. + * Generic method to set the primary key (id column). * - * @param array $keys The elements of the composite key (order must match the order in XML file). + * @param int $key Primary key. * @return void */ - public function setPrimaryKey($keys) + public function setPrimaryKey($key) { - $this->setId($keys[0]); - $this->setLocale($keys[1]); + $this->setId($key); } /** @@ -1231,7 +1166,7 @@ abstract class CarouselI18n implements ActiveRecordInterface public function isPrimaryKeyNull() { - return (null === $this->getId()) && (null === $this->getLocale()); + return null === $this->getId(); } /** @@ -1240,22 +1175,21 @@ abstract class CarouselI18n implements ActiveRecordInterface * If desired, this method can also make copies of all associated (fkey referrers) * objects. * - * @param object $copyObj An object of \Carousel\Model\CarouselI18n (or compatible) type. + * @param object $copyObj An object of \Sitemap\Model\SitemapPriority (or compatible) type. * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new. * @throws PropelException */ public function copyInto($copyObj, $deepCopy = false, $makeNew = true) { - $copyObj->setId($this->getId()); - $copyObj->setLocale($this->getLocale()); - $copyObj->setAlt($this->getAlt()); - $copyObj->setTitle($this->getTitle()); - $copyObj->setDescription($this->getDescription()); - $copyObj->setChapo($this->getChapo()); - $copyObj->setPostscriptum($this->getPostscriptum()); + $copyObj->setValue($this->getValue()); + $copyObj->setSource($this->getSource()); + $copyObj->setSourceId($this->getSourceId()); + $copyObj->setCreatedAt($this->getCreatedAt()); + $copyObj->setUpdatedAt($this->getUpdatedAt()); if ($makeNew) { $copyObj->setNew(true); + $copyObj->setId(NULL); // this is a auto-increment column, so set to default value } } @@ -1268,7 +1202,7 @@ abstract class CarouselI18n implements ActiveRecordInterface * objects. * * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @return \Carousel\Model\CarouselI18n Clone of current object. + * @return \Sitemap\Model\SitemapPriority Clone of current object. * @throws PropelException */ public function copy($deepCopy = false) @@ -1281,72 +1215,19 @@ abstract class CarouselI18n implements ActiveRecordInterface return $copyObj; } - /** - * Declares an association between this object and a ChildCarousel object. - * - * @param ChildCarousel $v - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - * @throws PropelException - */ - public function setCarousel(ChildCarousel $v = null) - { - if ($v === null) { - $this->setId(NULL); - } else { - $this->setId($v->getId()); - } - - $this->aCarousel = $v; - - // Add binding for other direction of this n:n relationship. - // If this object has already been added to the ChildCarousel object, it will not be re-added. - if ($v !== null) { - $v->addCarouselI18n($this); - } - - - return $this; - } - - - /** - * Get the associated ChildCarousel object - * - * @param ConnectionInterface $con Optional Connection object. - * @return ChildCarousel The associated ChildCarousel object. - * @throws PropelException - */ - public function getCarousel(ConnectionInterface $con = null) - { - if ($this->aCarousel === null && ($this->id !== null)) { - $this->aCarousel = ChildCarouselQuery::create()->findPk($this->id, $con); - /* The following can be used additionally to - guarantee the related object contains a reference - to this object. This level of coupling may, however, be - undesirable since it could result in an only partially populated collection - in the referenced object. - $this->aCarousel->addCarouselI18ns($this); - */ - } - - return $this->aCarousel; - } - /** * Clears the current object and sets all attributes to their default values */ public function clear() { $this->id = null; - $this->locale = null; - $this->alt = null; - $this->title = null; - $this->description = null; - $this->chapo = null; - $this->postscriptum = null; + $this->value = null; + $this->source = null; + $this->source_id = null; + $this->created_at = null; + $this->updated_at = null; $this->alreadyInSave = false; $this->clearAllReferences(); - $this->applyDefaultValues(); $this->resetModified(); $this->setNew(true); $this->setDeleted(false); @@ -1366,7 +1247,6 @@ abstract class CarouselI18n implements ActiveRecordInterface if ($deep) { } // if ($deep) - $this->aCarousel = null; } /** @@ -1376,7 +1256,21 @@ abstract class CarouselI18n implements ActiveRecordInterface */ public function __toString() { - return (string) $this->exportTo(CarouselI18nTableMap::DEFAULT_STRING_FORMAT); + return (string) $this->exportTo(SitemapPriorityTableMap::DEFAULT_STRING_FORMAT); + } + + // timestampable behavior + + /** + * Mark the current object so that the update date doesn't get updated during next save + * + * @return ChildSitemapPriority The current object (for fluent API support) + */ + public function keepUpdateDateUnchanged() + { + $this->modifiedColumns[SitemapPriorityTableMap::UPDATED_AT] = true; + + return $this; } /** diff --git a/local/modules/Sitemap/Model/Base/SitemapPriorityQuery.php b/local/modules/Sitemap/Model/Base/SitemapPriorityQuery.php new file mode 100644 index 00000000..ce11a3f4 --- /dev/null +++ b/local/modules/Sitemap/Model/Base/SitemapPriorityQuery.php @@ -0,0 +1,627 @@ +setModelAlias($modelAlias); + } + if ($criteria instanceof Criteria) { + $query->mergeWith($criteria); + } + + return $query; + } + + /** + * Find object by primary key. + * Propel uses the instance pool to skip the database if the object exists. + * Go fast if the query is untouched. + * + * + * $obj = $c->findPk(12, $con); + * + * + * @param mixed $key Primary key to use for the query + * @param ConnectionInterface $con an optional connection object + * + * @return ChildSitemapPriority|array|mixed the result, formatted by the current formatter + */ + public function findPk($key, $con = null) + { + if ($key === null) { + return null; + } + if ((null !== ($obj = SitemapPriorityTableMap::getInstanceFromPool((string) $key))) && !$this->formatter) { + // the object is already in the instance pool + return $obj; + } + if ($con === null) { + $con = Propel::getServiceContainer()->getReadConnection(SitemapPriorityTableMap::DATABASE_NAME); + } + $this->basePreSelect($con); + if ($this->formatter || $this->modelAlias || $this->with || $this->select + || $this->selectColumns || $this->asColumns || $this->selectModifiers + || $this->map || $this->having || $this->joins) { + return $this->findPkComplex($key, $con); + } else { + return $this->findPkSimple($key, $con); + } + } + + /** + * Find object by primary key using raw SQL to go fast. + * Bypass doSelect() and the object formatter by using generated code. + * + * @param mixed $key Primary key to use for the query + * @param ConnectionInterface $con A connection object + * + * @return ChildSitemapPriority A model object, or null if the key is not found + */ + protected function findPkSimple($key, $con) + { + $sql = 'SELECT ID, VALUE, SOURCE, SOURCE_ID, CREATED_AT, UPDATED_AT FROM sitemap_priority WHERE ID = :p0'; + try { + $stmt = $con->prepare($sql); + $stmt->bindValue(':p0', $key, PDO::PARAM_INT); + $stmt->execute(); + } catch (Exception $e) { + Propel::log($e->getMessage(), Propel::LOG_ERR); + throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); + } + $obj = null; + if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { + $obj = new ChildSitemapPriority(); + $obj->hydrate($row); + SitemapPriorityTableMap::addInstanceToPool($obj, (string) $key); + } + $stmt->closeCursor(); + + return $obj; + } + + /** + * Find object by primary key. + * + * @param mixed $key Primary key to use for the query + * @param ConnectionInterface $con A connection object + * + * @return ChildSitemapPriority|array|mixed the result, formatted by the current formatter + */ + protected function findPkComplex($key, $con) + { + // As the query uses a PK condition, no limit(1) is necessary. + $criteria = $this->isKeepQuery() ? clone $this : $this; + $dataFetcher = $criteria + ->filterByPrimaryKey($key) + ->doSelect($con); + + return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); + } + + /** + * Find objects by primary key + * + * $objs = $c->findPks(array(12, 56, 832), $con); + * + * @param array $keys Primary keys to use for the query + * @param ConnectionInterface $con an optional connection object + * + * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter + */ + public function findPks($keys, $con = null) + { + if (null === $con) { + $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); + } + $this->basePreSelect($con); + $criteria = $this->isKeepQuery() ? clone $this : $this; + $dataFetcher = $criteria + ->filterByPrimaryKeys($keys) + ->doSelect($con); + + return $criteria->getFormatter()->init($criteria)->format($dataFetcher); + } + + /** + * Filter the query by primary key + * + * @param mixed $key Primary key to use for the query + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByPrimaryKey($key) + { + + return $this->addUsingAlias(SitemapPriorityTableMap::ID, $key, Criteria::EQUAL); + } + + /** + * Filter the query by a list of primary keys + * + * @param array $keys The list of primary key to use for the query + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByPrimaryKeys($keys) + { + + return $this->addUsingAlias(SitemapPriorityTableMap::ID, $keys, Criteria::IN); + } + + /** + * Filter the query on the id column + * + * Example usage: + * + * $query->filterById(1234); // WHERE id = 1234 + * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) + * $query->filterById(array('min' => 12)); // WHERE id > 12 + * + * + * @param mixed $id The value to use as filter. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterById($id = null, $comparison = null) + { + if (is_array($id)) { + $useMinMax = false; + if (isset($id['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($id['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::ID, $id['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::ID, $id, $comparison); + } + + /** + * Filter the query on the value column + * + * Example usage: + * + * $query->filterByValue(1234); // WHERE value = 1234 + * $query->filterByValue(array(12, 34)); // WHERE value IN (12, 34) + * $query->filterByValue(array('min' => 12)); // WHERE value > 12 + * + * + * @param mixed $value The value to use as filter. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByValue($value = null, $comparison = null) + { + if (is_array($value)) { + $useMinMax = false; + if (isset($value['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::VALUE, $value['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($value['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::VALUE, $value['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::VALUE, $value, $comparison); + } + + /** + * Filter the query on the source column + * + * Example usage: + * + * $query->filterBySource('fooValue'); // WHERE source = 'fooValue' + * $query->filterBySource('%fooValue%'); // WHERE source LIKE '%fooValue%' + * + * + * @param string $source The value to use as filter. + * Accepts wildcards (* and % trigger a LIKE) + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterBySource($source = null, $comparison = null) + { + if (null === $comparison) { + if (is_array($source)) { + $comparison = Criteria::IN; + } elseif (preg_match('/[\%\*]/', $source)) { + $source = str_replace('*', '%', $source); + $comparison = Criteria::LIKE; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::SOURCE, $source, $comparison); + } + + /** + * Filter the query on the source_id column + * + * Example usage: + * + * $query->filterBySourceId(1234); // WHERE source_id = 1234 + * $query->filterBySourceId(array(12, 34)); // WHERE source_id IN (12, 34) + * $query->filterBySourceId(array('min' => 12)); // WHERE source_id > 12 + * + * + * @param mixed $sourceId The value to use as filter. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterBySourceId($sourceId = null, $comparison = null) + { + if (is_array($sourceId)) { + $useMinMax = false; + if (isset($sourceId['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::SOURCE_ID, $sourceId['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($sourceId['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::SOURCE_ID, $sourceId['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::SOURCE_ID, $sourceId, $comparison); + } + + /** + * Filter the query on the created_at column + * + * Example usage: + * + * $query->filterByCreatedAt('2011-03-14'); // WHERE created_at = '2011-03-14' + * $query->filterByCreatedAt('now'); // WHERE created_at = '2011-03-14' + * $query->filterByCreatedAt(array('max' => 'yesterday')); // WHERE created_at > '2011-03-13' + * + * + * @param mixed $createdAt The value to use as filter. + * Values can be integers (unix timestamps), DateTime objects, or strings. + * Empty strings are treated as NULL. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByCreatedAt($createdAt = null, $comparison = null) + { + if (is_array($createdAt)) { + $useMinMax = false; + if (isset($createdAt['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::CREATED_AT, $createdAt['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($createdAt['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::CREATED_AT, $createdAt['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::CREATED_AT, $createdAt, $comparison); + } + + /** + * Filter the query on the updated_at column + * + * Example usage: + * + * $query->filterByUpdatedAt('2011-03-14'); // WHERE updated_at = '2011-03-14' + * $query->filterByUpdatedAt('now'); // WHERE updated_at = '2011-03-14' + * $query->filterByUpdatedAt(array('max' => 'yesterday')); // WHERE updated_at > '2011-03-13' + * + * + * @param mixed $updatedAt The value to use as filter. + * Values can be integers (unix timestamps), DateTime objects, or strings. + * Empty strings are treated as NULL. + * Use scalar values for equality. + * Use array values for in_array() equivalent. + * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. + * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function filterByUpdatedAt($updatedAt = null, $comparison = null) + { + if (is_array($updatedAt)) { + $useMinMax = false; + if (isset($updatedAt['min'])) { + $this->addUsingAlias(SitemapPriorityTableMap::UPDATED_AT, $updatedAt['min'], Criteria::GREATER_EQUAL); + $useMinMax = true; + } + if (isset($updatedAt['max'])) { + $this->addUsingAlias(SitemapPriorityTableMap::UPDATED_AT, $updatedAt['max'], Criteria::LESS_EQUAL); + $useMinMax = true; + } + if ($useMinMax) { + return $this; + } + if (null === $comparison) { + $comparison = Criteria::IN; + } + } + + return $this->addUsingAlias(SitemapPriorityTableMap::UPDATED_AT, $updatedAt, $comparison); + } + + /** + * Exclude object from result + * + * @param ChildSitemapPriority $sitemapPriority Object to remove from the list of results + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function prune($sitemapPriority = null) + { + if ($sitemapPriority) { + $this->addUsingAlias(SitemapPriorityTableMap::ID, $sitemapPriority->getId(), Criteria::NOT_EQUAL); + } + + return $this; + } + + /** + * Deletes all rows from the sitemap_priority table. + * + * @param ConnectionInterface $con the connection to use + * @return int The number of affected rows (if supported by underlying database driver). + */ + public function doDeleteAll(ConnectionInterface $con = null) + { + if (null === $con) { + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); + } + $affectedRows = 0; // initialize var to track total num of affected rows + try { + // use transaction because $criteria could contain info + // for more than one table or we could emulating ON DELETE CASCADE, etc. + $con->beginTransaction(); + $affectedRows += parent::doDeleteAll($con); + // Because this db requires some delete cascade/set null emulation, we have to + // clear the cached instance *after* the emulation has happened (since + // instances get re-added by the select statement contained therein). + SitemapPriorityTableMap::clearInstancePool(); + SitemapPriorityTableMap::clearRelatedInstancePool(); + + $con->commit(); + } catch (PropelException $e) { + $con->rollBack(); + throw $e; + } + + return $affectedRows; + } + + /** + * Performs a DELETE on the database, given a ChildSitemapPriority or Criteria object OR a primary key value. + * + * @param mixed $values Criteria or ChildSitemapPriority object or primary key or array of primary keys + * which is used to create the DELETE statement + * @param ConnectionInterface $con the connection to use + * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows + * if supported by native driver or if emulated using Propel. + * @throws PropelException Any exceptions caught during processing will be + * rethrown wrapped into a PropelException. + */ + public function delete(ConnectionInterface $con = null) + { + if (null === $con) { + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); + } + + $criteria = $this; + + // Set the correct dbName + $criteria->setDbName(SitemapPriorityTableMap::DATABASE_NAME); + + $affectedRows = 0; // initialize var to track total num of affected rows + + try { + // use transaction because $criteria could contain info + // for more than one table or we could emulating ON DELETE CASCADE, etc. + $con->beginTransaction(); + + + SitemapPriorityTableMap::removeInstanceFromPool($criteria); + + $affectedRows += ModelCriteria::delete($con); + SitemapPriorityTableMap::clearRelatedInstancePool(); + $con->commit(); + + return $affectedRows; + } catch (PropelException $e) { + $con->rollBack(); + throw $e; + } + } + + // timestampable behavior + + /** + * Filter by the latest updated + * + * @param int $nbDays Maximum age of the latest update in days + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function recentlyUpdated($nbDays = 7) + { + return $this->addUsingAlias(SitemapPriorityTableMap::UPDATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); + } + + /** + * Filter by the latest created + * + * @param int $nbDays Maximum age of in days + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function recentlyCreated($nbDays = 7) + { + return $this->addUsingAlias(SitemapPriorityTableMap::CREATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); + } + + /** + * Order by update date desc + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function lastUpdatedFirst() + { + return $this->addDescendingOrderByColumn(SitemapPriorityTableMap::UPDATED_AT); + } + + /** + * Order by update date asc + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function firstUpdatedFirst() + { + return $this->addAscendingOrderByColumn(SitemapPriorityTableMap::UPDATED_AT); + } + + /** + * Order by create date desc + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function lastCreatedFirst() + { + return $this->addDescendingOrderByColumn(SitemapPriorityTableMap::CREATED_AT); + } + + /** + * Order by create date asc + * + * @return ChildSitemapPriorityQuery The current query, for fluid interface + */ + public function firstCreatedFirst() + { + return $this->addAscendingOrderByColumn(SitemapPriorityTableMap::CREATED_AT); + } + +} // SitemapPriorityQuery diff --git a/local/modules/modules/Carousel/Model/Map/CarouselTableMap.php b/local/modules/Sitemap/Model/Map/SitemapPriorityTableMap.php similarity index 65% rename from local/modules/modules/Carousel/Model/Map/CarouselTableMap.php rename to local/modules/Sitemap/Model/Map/SitemapPriorityTableMap.php index ca7b8883..099fbb8b 100644 --- a/local/modules/modules/Carousel/Model/Map/CarouselTableMap.php +++ b/local/modules/Sitemap/Model/Map/SitemapPriorityTableMap.php @@ -1,9 +1,7 @@ array('Id', 'File', 'Position', 'Url', 'CreatedAt', 'UpdatedAt', ), - self::TYPE_STUDLYPHPNAME => array('id', 'file', 'position', 'url', 'createdAt', 'updatedAt', ), - self::TYPE_COLNAME => array(CarouselTableMap::ID, CarouselTableMap::FILE, CarouselTableMap::POSITION, CarouselTableMap::URL, CarouselTableMap::CREATED_AT, CarouselTableMap::UPDATED_AT, ), - self::TYPE_RAW_COLNAME => array('ID', 'FILE', 'POSITION', 'URL', 'CREATED_AT', 'UPDATED_AT', ), - self::TYPE_FIELDNAME => array('id', 'file', 'position', 'url', 'created_at', 'updated_at', ), + self::TYPE_PHPNAME => array('Id', 'Value', 'Source', 'SourceId', 'CreatedAt', 'UpdatedAt', ), + self::TYPE_STUDLYPHPNAME => array('id', 'value', 'source', 'sourceId', 'createdAt', 'updatedAt', ), + self::TYPE_COLNAME => array(SitemapPriorityTableMap::ID, SitemapPriorityTableMap::VALUE, SitemapPriorityTableMap::SOURCE, SitemapPriorityTableMap::SOURCE_ID, SitemapPriorityTableMap::CREATED_AT, SitemapPriorityTableMap::UPDATED_AT, ), + self::TYPE_RAW_COLNAME => array('ID', 'VALUE', 'SOURCE', 'SOURCE_ID', 'CREATED_AT', 'UPDATED_AT', ), + self::TYPE_FIELDNAME => array('id', 'value', 'source', 'source_id', 'created_at', 'updated_at', ), self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, ) ); @@ -136,11 +127,11 @@ class CarouselTableMap extends TableMap * e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0 */ protected static $fieldKeys = array ( - self::TYPE_PHPNAME => array('Id' => 0, 'File' => 1, 'Position' => 2, 'Url' => 3, 'CreatedAt' => 4, 'UpdatedAt' => 5, ), - self::TYPE_STUDLYPHPNAME => array('id' => 0, 'file' => 1, 'position' => 2, 'url' => 3, 'createdAt' => 4, 'updatedAt' => 5, ), - self::TYPE_COLNAME => array(CarouselTableMap::ID => 0, CarouselTableMap::FILE => 1, CarouselTableMap::POSITION => 2, CarouselTableMap::URL => 3, CarouselTableMap::CREATED_AT => 4, CarouselTableMap::UPDATED_AT => 5, ), - self::TYPE_RAW_COLNAME => array('ID' => 0, 'FILE' => 1, 'POSITION' => 2, 'URL' => 3, 'CREATED_AT' => 4, 'UPDATED_AT' => 5, ), - self::TYPE_FIELDNAME => array('id' => 0, 'file' => 1, 'position' => 2, 'url' => 3, 'created_at' => 4, 'updated_at' => 5, ), + self::TYPE_PHPNAME => array('Id' => 0, 'Value' => 1, 'Source' => 2, 'SourceId' => 3, 'CreatedAt' => 4, 'UpdatedAt' => 5, ), + self::TYPE_STUDLYPHPNAME => array('id' => 0, 'value' => 1, 'source' => 2, 'sourceId' => 3, 'createdAt' => 4, 'updatedAt' => 5, ), + self::TYPE_COLNAME => array(SitemapPriorityTableMap::ID => 0, SitemapPriorityTableMap::VALUE => 1, SitemapPriorityTableMap::SOURCE => 2, SitemapPriorityTableMap::SOURCE_ID => 3, SitemapPriorityTableMap::CREATED_AT => 4, SitemapPriorityTableMap::UPDATED_AT => 5, ), + self::TYPE_RAW_COLNAME => array('ID' => 0, 'VALUE' => 1, 'SOURCE' => 2, 'SOURCE_ID' => 3, 'CREATED_AT' => 4, 'UPDATED_AT' => 5, ), + self::TYPE_FIELDNAME => array('id' => 0, 'value' => 1, 'source' => 2, 'source_id' => 3, 'created_at' => 4, 'updated_at' => 5, ), self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, ) ); @@ -154,16 +145,16 @@ class CarouselTableMap extends TableMap public function initialize() { // attributes - $this->setName('carousel'); - $this->setPhpName('Carousel'); - $this->setClassName('\\Carousel\\Model\\Carousel'); - $this->setPackage('Carousel.Model'); + $this->setName('sitemap_priority'); + $this->setPhpName('SitemapPriority'); + $this->setClassName('\\Sitemap\\Model\\SitemapPriority'); + $this->setPackage('Sitemap.Model'); $this->setUseIdGenerator(true); // columns $this->addPrimaryKey('ID', 'Id', 'INTEGER', true, null, null); - $this->addColumn('FILE', 'File', 'VARCHAR', false, 255, null); - $this->addColumn('POSITION', 'Position', 'INTEGER', false, null, null); - $this->addColumn('URL', 'Url', 'VARCHAR', false, 255, null); + $this->addColumn('VALUE', 'Value', 'FLOAT', false, null, null); + $this->addColumn('SOURCE', 'Source', 'VARCHAR', false, 64, null); + $this->addColumn('SOURCE_ID', 'SourceId', 'INTEGER', false, null, null); $this->addColumn('CREATED_AT', 'CreatedAt', 'TIMESTAMP', false, null, null); $this->addColumn('UPDATED_AT', 'UpdatedAt', 'TIMESTAMP', false, null, null); } // initialize() @@ -173,7 +164,6 @@ class CarouselTableMap extends TableMap */ public function buildRelations() { - $this->addRelation('CarouselI18n', '\\Carousel\\Model\\CarouselI18n', RelationMap::ONE_TO_MANY, array('id' => 'id', ), 'CASCADE', null, 'CarouselI18ns'); } // buildRelations() /** @@ -186,18 +176,8 @@ class CarouselTableMap extends TableMap { return array( 'timestampable' => array('create_column' => 'created_at', 'update_column' => 'updated_at', ), - 'i18n' => array('i18n_table' => '%TABLE%_i18n', 'i18n_phpname' => '%PHPNAME%I18n', 'i18n_columns' => 'alt, title, description, chapo, postscriptum', 'locale_column' => 'locale', 'locale_length' => '5', 'default_locale' => '', 'locale_alias' => '', ), ); } // getBehaviors() - /** - * Method to invalidate the instance pool of all tables related to carousel * by a foreign key with ON DELETE CASCADE - */ - public static function clearRelatedInstancePool() - { - // Invalidate objects in ".$this->getClassNameFromBuilder($joinedTableTableMapBuilder)." instance pool, - // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. - CarouselI18nTableMap::clearInstancePool(); - } /** * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table. @@ -255,7 +235,7 @@ class CarouselTableMap extends TableMap */ public static function getOMClass($withPrefix = true) { - return $withPrefix ? CarouselTableMap::CLASS_DEFAULT : CarouselTableMap::OM_CLASS; + return $withPrefix ? SitemapPriorityTableMap::CLASS_DEFAULT : SitemapPriorityTableMap::OM_CLASS; } /** @@ -269,21 +249,21 @@ class CarouselTableMap extends TableMap * * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. - * @return array (Carousel object, last column rank) + * @return array (SitemapPriority object, last column rank) */ public static function populateObject($row, $offset = 0, $indexType = TableMap::TYPE_NUM) { - $key = CarouselTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); - if (null !== ($obj = CarouselTableMap::getInstanceFromPool($key))) { + $key = SitemapPriorityTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); + if (null !== ($obj = SitemapPriorityTableMap::getInstanceFromPool($key))) { // We no longer rehydrate the object, since this can cause data loss. // See http://www.propelorm.org/ticket/509 // $obj->hydrate($row, $offset, true); // rehydrate - $col = $offset + CarouselTableMap::NUM_HYDRATE_COLUMNS; + $col = $offset + SitemapPriorityTableMap::NUM_HYDRATE_COLUMNS; } else { - $cls = CarouselTableMap::OM_CLASS; + $cls = SitemapPriorityTableMap::OM_CLASS; $obj = new $cls(); $col = $obj->hydrate($row, $offset, false, $indexType); - CarouselTableMap::addInstanceToPool($obj, $key); + SitemapPriorityTableMap::addInstanceToPool($obj, $key); } return array($obj, $col); @@ -306,8 +286,8 @@ class CarouselTableMap extends TableMap $cls = static::getOMClass(false); // populate the object(s) while ($row = $dataFetcher->fetch()) { - $key = CarouselTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); - if (null !== ($obj = CarouselTableMap::getInstanceFromPool($key))) { + $key = SitemapPriorityTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); + if (null !== ($obj = SitemapPriorityTableMap::getInstanceFromPool($key))) { // We no longer rehydrate the object, since this can cause data loss. // See http://www.propelorm.org/ticket/509 // $obj->hydrate($row, 0, true); // rehydrate @@ -316,7 +296,7 @@ class CarouselTableMap extends TableMap $obj = new $cls(); $obj->hydrate($row); $results[] = $obj; - CarouselTableMap::addInstanceToPool($obj, $key); + SitemapPriorityTableMap::addInstanceToPool($obj, $key); } // if key exists } @@ -337,17 +317,17 @@ class CarouselTableMap extends TableMap public static function addSelectColumns(Criteria $criteria, $alias = null) { if (null === $alias) { - $criteria->addSelectColumn(CarouselTableMap::ID); - $criteria->addSelectColumn(CarouselTableMap::FILE); - $criteria->addSelectColumn(CarouselTableMap::POSITION); - $criteria->addSelectColumn(CarouselTableMap::URL); - $criteria->addSelectColumn(CarouselTableMap::CREATED_AT); - $criteria->addSelectColumn(CarouselTableMap::UPDATED_AT); + $criteria->addSelectColumn(SitemapPriorityTableMap::ID); + $criteria->addSelectColumn(SitemapPriorityTableMap::VALUE); + $criteria->addSelectColumn(SitemapPriorityTableMap::SOURCE); + $criteria->addSelectColumn(SitemapPriorityTableMap::SOURCE_ID); + $criteria->addSelectColumn(SitemapPriorityTableMap::CREATED_AT); + $criteria->addSelectColumn(SitemapPriorityTableMap::UPDATED_AT); } else { $criteria->addSelectColumn($alias . '.ID'); - $criteria->addSelectColumn($alias . '.FILE'); - $criteria->addSelectColumn($alias . '.POSITION'); - $criteria->addSelectColumn($alias . '.URL'); + $criteria->addSelectColumn($alias . '.VALUE'); + $criteria->addSelectColumn($alias . '.SOURCE'); + $criteria->addSelectColumn($alias . '.SOURCE_ID'); $criteria->addSelectColumn($alias . '.CREATED_AT'); $criteria->addSelectColumn($alias . '.UPDATED_AT'); } @@ -362,7 +342,7 @@ class CarouselTableMap extends TableMap */ public static function getTableMap() { - return Propel::getServiceContainer()->getDatabaseMap(CarouselTableMap::DATABASE_NAME)->getTable(CarouselTableMap::TABLE_NAME); + return Propel::getServiceContainer()->getDatabaseMap(SitemapPriorityTableMap::DATABASE_NAME)->getTable(SitemapPriorityTableMap::TABLE_NAME); } /** @@ -370,16 +350,16 @@ class CarouselTableMap extends TableMap */ public static function buildTableMap() { - $dbMap = Propel::getServiceContainer()->getDatabaseMap(CarouselTableMap::DATABASE_NAME); - if (!$dbMap->hasTable(CarouselTableMap::TABLE_NAME)) { - $dbMap->addTableObject(new CarouselTableMap()); + $dbMap = Propel::getServiceContainer()->getDatabaseMap(SitemapPriorityTableMap::DATABASE_NAME); + if (!$dbMap->hasTable(SitemapPriorityTableMap::TABLE_NAME)) { + $dbMap->addTableObject(new SitemapPriorityTableMap()); } } /** - * Performs a DELETE on the database, given a Carousel or Criteria object OR a primary key value. + * Performs a DELETE on the database, given a SitemapPriority or Criteria object OR a primary key value. * - * @param mixed $values Criteria or Carousel object or primary key or array of primary keys + * @param mixed $values Criteria or SitemapPriority object or primary key or array of primary keys * which is used to create the DELETE statement * @param ConnectionInterface $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows @@ -390,25 +370,25 @@ class CarouselTableMap extends TableMap public static function doDelete($values, ConnectionInterface $con = null) { if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); } if ($values instanceof Criteria) { // rename for clarity $criteria = $values; - } elseif ($values instanceof \Carousel\Model\Carousel) { // it's a model object + } elseif ($values instanceof \Sitemap\Model\SitemapPriority) { // it's a model object // create criteria based on pk values $criteria = $values->buildPkeyCriteria(); } else { // it's a primary key, or an array of pks - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - $criteria->add(CarouselTableMap::ID, (array) $values, Criteria::IN); + $criteria = new Criteria(SitemapPriorityTableMap::DATABASE_NAME); + $criteria->add(SitemapPriorityTableMap::ID, (array) $values, Criteria::IN); } - $query = CarouselQuery::create()->mergeWith($criteria); + $query = SitemapPriorityQuery::create()->mergeWith($criteria); - if ($values instanceof Criteria) { CarouselTableMap::clearInstancePool(); + if ($values instanceof Criteria) { SitemapPriorityTableMap::clearInstancePool(); } elseif (!is_object($values)) { // it's a primary key, or an array of pks - foreach ((array) $values as $singleval) { CarouselTableMap::removeInstanceFromPool($singleval); + foreach ((array) $values as $singleval) { SitemapPriorityTableMap::removeInstanceFromPool($singleval); } } @@ -416,20 +396,20 @@ class CarouselTableMap extends TableMap } /** - * Deletes all rows from the carousel table. + * Deletes all rows from the sitemap_priority table. * * @param ConnectionInterface $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). */ public static function doDeleteAll(ConnectionInterface $con = null) { - return CarouselQuery::create()->doDeleteAll($con); + return SitemapPriorityQuery::create()->doDeleteAll($con); } /** - * Performs an INSERT on the database, given a Carousel or Criteria object. + * Performs an INSERT on the database, given a SitemapPriority or Criteria object. * - * @param mixed $criteria Criteria or Carousel object containing data that is used to create the INSERT statement. + * @param mixed $criteria Criteria or SitemapPriority object containing data that is used to create the INSERT statement. * @param ConnectionInterface $con the ConnectionInterface connection to use * @return mixed The new primary key. * @throws PropelException Any exceptions caught during processing will be @@ -438,22 +418,22 @@ class CarouselTableMap extends TableMap public static function doInsert($criteria, ConnectionInterface $con = null) { if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); + $con = Propel::getServiceContainer()->getWriteConnection(SitemapPriorityTableMap::DATABASE_NAME); } if ($criteria instanceof Criteria) { $criteria = clone $criteria; // rename for clarity } else { - $criteria = $criteria->buildCriteria(); // build Criteria from Carousel object + $criteria = $criteria->buildCriteria(); // build Criteria from SitemapPriority object } - if ($criteria->containsKey(CarouselTableMap::ID) && $criteria->keyContainsValue(CarouselTableMap::ID) ) { - throw new PropelException('Cannot insert a value for auto-increment primary key ('.CarouselTableMap::ID.')'); + if ($criteria->containsKey(SitemapPriorityTableMap::ID) && $criteria->keyContainsValue(SitemapPriorityTableMap::ID) ) { + throw new PropelException('Cannot insert a value for auto-increment primary key ('.SitemapPriorityTableMap::ID.')'); } // Set the correct dbName - $query = CarouselQuery::create()->mergeWith($criteria); + $query = SitemapPriorityQuery::create()->mergeWith($criteria); try { // use transaction because $criteria could contain info @@ -469,7 +449,7 @@ class CarouselTableMap extends TableMap return $pk; } -} // CarouselTableMap +} // SitemapPriorityTableMap // This is the static code needed to register the TableMap for this table with the main Propel class. // -CarouselTableMap::buildTableMap(); +SitemapPriorityTableMap::buildTableMap(); diff --git a/local/modules/Sitemap/Model/SitemapPriority.php b/local/modules/Sitemap/Model/SitemapPriority.php new file mode 100644 index 00000000..a030f708 --- /dev/null +++ b/local/modules/Sitemap/Model/SitemapPriority.php @@ -0,0 +1,10 @@ +/local/modules/``` directory and be sure that the name of the module is Sitemap. +* Activate it in your thelia administration panel + +### Composer + +Add it in your main thelia composer.json file + +``` +composer require thelia/sitemap-module:~1.4.0 +``` + +## Usage + +Configure the module with the same information as in you product image loop. + +If you have a lot of products with images, change the timeout in the configuration. **However, be aware** that it may not work depending on your server. + +The sitemap will be filled with all your categories, products, folders and contents URLs, depending on the language. + +The sitemap-image will be filled with all your product images (1 by product) URLs, depending on the language. + +The module will be used to generate sitemap when going on http://yourSite.com/sitemap and the sitemap-image on http://yourSite.com/sitemap-image. \ No newline at end of file diff --git a/local/modules/Sitemap/Sitemap.php b/local/modules/Sitemap/Sitemap.php new file mode 100644 index 00000000..170e45ab --- /dev/null +++ b/local/modules/Sitemap/Sitemap.php @@ -0,0 +1,72 @@ +findOne(); + } catch (\Exception $ex) { + $database = new Database($con->getWrappedConnection()); + $database->insertSql(null, array(__DIR__ . '/Config/thelia.sql')); + } + } + + + public function update($currentVersion, $newVersion, ConnectionInterface $con = null) + { + $finder = (new Finder) + ->files() + ->name('#.*?\.sql#') + ->sortByName() + ->in(__DIR__ . DS . 'Config' . DS . 'update' . DS . 'sql'); + + $database = new Database($con); + + /** @var \Symfony\Component\Finder\SplFileInfo $updateSQLFile */ + foreach ($finder as $updateSQLFile) { + if (version_compare($currentVersion, str_replace('.sql', '', $updateSQLFile->getFilename()), '<')) { + $database->insertSql( + null, + [ + $updateSQLFile->getPathname() + ] + ); + } + } + } +} diff --git a/local/modules/modules/FreeOrder/composer.json b/local/modules/Sitemap/composer.json similarity index 63% rename from local/modules/modules/FreeOrder/composer.json rename to local/modules/Sitemap/composer.json index f32437ec..8b22d2d5 100644 --- a/local/modules/modules/FreeOrder/composer.json +++ b/local/modules/Sitemap/composer.json @@ -1,11 +1,11 @@ { - "name": "thelia/free-order-module", + "name": "thelia/sitemap-module", "license": "LGPL-3.0+", "type": "thelia-module", "require": { "thelia/installer": "~1.1" }, "extra": { - "installer-name": "FreeOrder" + "installer-name": "Sitemap" } } \ No newline at end of file diff --git a/local/modules/Sitemap/templates/backOffice/default/generic-sitemap-definition.html b/local/modules/Sitemap/templates/backOffice/default/generic-sitemap-definition.html new file mode 100644 index 00000000..38e12be0 --- /dev/null +++ b/local/modules/Sitemap/templates/backOffice/default/generic-sitemap-definition.html @@ -0,0 +1 @@ +{render_form_field form=$form field="sitemapPriority" value=$sitemapPriority} \ No newline at end of file diff --git a/local/modules/Sitemap/templates/backOffice/default/sitemap-configuration.html b/local/modules/Sitemap/templates/backOffice/default/sitemap-configuration.html new file mode 100644 index 00000000..2770c81d --- /dev/null +++ b/local/modules/Sitemap/templates/backOffice/default/sitemap-configuration.html @@ -0,0 +1,290 @@ +{extends file="admin-layout.tpl"} + +{block name="no-return-functions"} +{$admin_current_location = 'modules'} +{/block} + +{block name="page-title"}{intl d="sitemap.bo.default" l='Sitemap images configuration'}{/block} + +{block name="check-resource"}admin.module{/block} +{block name="check-access"}view{/block} +{block name="check-module"}Sitemap{/block} + +{block name="main-content"} +
    + + + +
    +
    +
    + {if $success} +
    + {intl l="Configuration correctly saved" d="sitemap.bo.default"} +
    + {/if} + + {form name='sitemap_config_form'} + + + {form_hidden_fields form=$form} + + {include "includes/inner-form-toolbar.html" hide_flags=true close_url={url path='/admin/modules'}} +
    +

    {intl l="Configure sitemap" d="sitemap.bo.default"}

    +
    + + {form_field form=$form field="exclude_empty_category"} +
    + {form_error form=$form field="width"} + {$message} + {/form_error} + +
    + {/form_field} + + {form_field form=$form field="exclude_empty_folder"} +
    + {form_error form=$form field="width"} + {$message} + {/form_error} + +
    + {/form_field} + +
    +

    {intl l="Configure sitemap images" d="sitemap.bo.default"}

    +
    + +
    {intl l="Set the same information as in your product image loop" d="sitemap.bo.default"}.
    + + {form_field form=$form field="timeout"} +
    + + +

    {intl l='Warning! Only fill this input with a greater value than 30 if you have so many images that the sitemap-image can\'t be generated because of timeout.' d='sitemap.bo.default'}

    +

    {intl l='Depending on your server, this may have no effect.' d="sitemap.bo.default"}

    + +
    + {/form_field} + + {form_field form=$form field="width"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="height"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="quality"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="rotation"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="resize_mode"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="background_color"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="allow_zoom"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="default_priority_homepage_value"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="default_priority_brand_value"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="default_priority_category_value"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="default_priority_product_value"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="default_priority_folder_value"} +
    + + + +
    + {/form_field} + + {form_field form=$form field="default_update_frequency"} +
    + + + +
    + {/form_field} + + + {/form} +
    +
    + +
    +
    +{/block} \ No newline at end of file diff --git a/local/local/modules/VirtualProductControl/Config/config.xml b/local/modules/VirtualProductControl/Config/config.xml similarity index 100% rename from local/local/modules/VirtualProductControl/Config/config.xml rename to local/modules/VirtualProductControl/Config/config.xml diff --git a/local/local/modules/VirtualProductControl/Config/module.xml b/local/modules/VirtualProductControl/Config/module.xml similarity index 100% rename from local/local/modules/VirtualProductControl/Config/module.xml rename to local/modules/VirtualProductControl/Config/module.xml diff --git a/local/local/modules/VirtualProductControl/Hook/VirtualProductHook.php b/local/modules/VirtualProductControl/Hook/VirtualProductHook.php similarity index 100% rename from local/local/modules/VirtualProductControl/Hook/VirtualProductHook.php rename to local/modules/VirtualProductControl/Hook/VirtualProductHook.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php b/local/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/en_US.php b/local/modules/VirtualProductControl/I18n/backOffice/default/en_US.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/en_US.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/en_US.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php b/local/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php b/local/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php diff --git a/local/local/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php b/local/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php rename to local/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php diff --git a/local/local/modules/VirtualProductControl/I18n/de_DE.php b/local/modules/VirtualProductControl/I18n/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/de_DE.php rename to local/modules/VirtualProductControl/I18n/de_DE.php diff --git a/local/local/modules/VirtualProductControl/I18n/en_US.php b/local/modules/VirtualProductControl/I18n/en_US.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/en_US.php rename to local/modules/VirtualProductControl/I18n/en_US.php diff --git a/local/local/modules/VirtualProductControl/I18n/fr_FR.php b/local/modules/VirtualProductControl/I18n/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/fr_FR.php rename to local/modules/VirtualProductControl/I18n/fr_FR.php diff --git a/local/local/modules/VirtualProductControl/I18n/it_IT.php b/local/modules/VirtualProductControl/I18n/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/it_IT.php rename to local/modules/VirtualProductControl/I18n/it_IT.php diff --git a/local/local/modules/VirtualProductControl/I18n/tr_TR.php b/local/modules/VirtualProductControl/I18n/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductControl/I18n/tr_TR.php rename to local/modules/VirtualProductControl/I18n/tr_TR.php diff --git a/local/local/modules/Cheque/LICENSE.txt b/local/modules/VirtualProductControl/LICENSE.txt similarity index 100% rename from local/local/modules/Cheque/LICENSE.txt rename to local/modules/VirtualProductControl/LICENSE.txt diff --git a/local/local/modules/VirtualProductControl/VirtualProductControl.php b/local/modules/VirtualProductControl/VirtualProductControl.php similarity index 100% rename from local/local/modules/VirtualProductControl/VirtualProductControl.php rename to local/modules/VirtualProductControl/VirtualProductControl.php diff --git a/local/local/modules/VirtualProductControl/composer.json b/local/modules/VirtualProductControl/composer.json similarity index 100% rename from local/local/modules/VirtualProductControl/composer.json rename to local/modules/VirtualProductControl/composer.json diff --git a/local/local/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html b/local/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html similarity index 100% rename from local/local/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html rename to local/modules/VirtualProductControl/templates/backOffice/default/virtual-delivery-warning.html diff --git a/local/local/modules/VirtualProductDelivery/Config/config.xml b/local/modules/VirtualProductDelivery/Config/config.xml similarity index 100% rename from local/local/modules/VirtualProductDelivery/Config/config.xml rename to local/modules/VirtualProductDelivery/Config/config.xml diff --git a/local/local/modules/VirtualProductDelivery/Config/module.xml b/local/modules/VirtualProductDelivery/Config/module.xml similarity index 100% rename from local/local/modules/VirtualProductDelivery/Config/module.xml rename to local/modules/VirtualProductDelivery/Config/module.xml diff --git a/local/local/modules/VirtualProductDelivery/EventListeners/SendMail.php b/local/modules/VirtualProductDelivery/EventListeners/SendMail.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/EventListeners/SendMail.php rename to local/modules/VirtualProductDelivery/EventListeners/SendMail.php diff --git a/local/local/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php b/local/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php rename to local/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php diff --git a/local/local/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php b/local/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php rename to local/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php diff --git a/local/local/modules/VirtualProductDelivery/Hook/HookManager.php b/local/modules/VirtualProductDelivery/Hook/HookManager.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/Hook/HookManager.php rename to local/modules/VirtualProductDelivery/Hook/HookManager.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/de_DE.php b/local/modules/VirtualProductDelivery/I18n/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/de_DE.php rename to local/modules/VirtualProductDelivery/I18n/de_DE.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/email/default/en_US.php b/local/modules/VirtualProductDelivery/I18n/email/default/en_US.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/email/default/en_US.php rename to local/modules/VirtualProductDelivery/I18n/email/default/en_US.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php b/local/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php rename to local/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/email/default/it_IT.php b/local/modules/VirtualProductDelivery/I18n/email/default/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/email/default/it_IT.php rename to local/modules/VirtualProductDelivery/I18n/email/default/it_IT.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php b/local/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php rename to local/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/en_US.php b/local/modules/VirtualProductDelivery/I18n/en_US.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/en_US.php rename to local/modules/VirtualProductDelivery/I18n/en_US.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/fr_FR.php b/local/modules/VirtualProductDelivery/I18n/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/fr_FR.php rename to local/modules/VirtualProductDelivery/I18n/fr_FR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php b/local/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php rename to local/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/it_IT.php b/local/modules/VirtualProductDelivery/I18n/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/it_IT.php rename to local/modules/VirtualProductDelivery/I18n/it_IT.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php b/local/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php rename to local/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php diff --git a/local/local/modules/VirtualProductDelivery/I18n/tr_TR.php b/local/modules/VirtualProductDelivery/I18n/tr_TR.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/I18n/tr_TR.php rename to local/modules/VirtualProductDelivery/I18n/tr_TR.php diff --git a/local/local/modules/Colissimo/LICENSE.txt b/local/modules/VirtualProductDelivery/LICENSE.txt similarity index 100% rename from local/local/modules/Colissimo/LICENSE.txt rename to local/modules/VirtualProductDelivery/LICENSE.txt diff --git a/local/local/modules/VirtualProductDelivery/VirtualProductDelivery.php b/local/modules/VirtualProductDelivery/VirtualProductDelivery.php similarity index 100% rename from local/local/modules/VirtualProductDelivery/VirtualProductDelivery.php rename to local/modules/VirtualProductDelivery/VirtualProductDelivery.php diff --git a/local/local/modules/VirtualProductDelivery/composer.json b/local/modules/VirtualProductDelivery/composer.json similarity index 100% rename from local/local/modules/VirtualProductDelivery/composer.json rename to local/modules/VirtualProductDelivery/composer.json diff --git a/local/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html b/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html rename to local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html diff --git a/local/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt b/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt rename to local/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt diff --git a/local/local/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html b/local/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html rename to local/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html diff --git a/local/local/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html b/local/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html rename to local/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html diff --git a/local/local/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html b/local/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html similarity index 100% rename from local/local/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html rename to local/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html diff --git a/local/modules/modules/.gitkeep b/local/modules/modules/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/local/modules/modules/Carousel/CHANGELOG.md b/local/modules/modules/Carousel/CHANGELOG.md deleted file mode 100644 index b4525a3b..00000000 --- a/local/modules/modules/Carousel/CHANGELOG.md +++ /dev/null @@ -1,6 +0,0 @@ -# 2.3.0-alpha1 - -- Moved the images from the directory 'media' in the module to thelia/local/media/images/carousel. -- The current images will be automatically copied in the new directory during the update of the module -- Removed AdminIncludes directory -- All html,js and css files are now in 'templates' \ No newline at end of file diff --git a/local/modules/modules/Carousel/Carousel.php b/local/modules/modules/Carousel/Carousel.php deleted file mode 100644 index b0caadf0..00000000 --- a/local/modules/modules/Carousel/Carousel.php +++ /dev/null @@ -1,89 +0,0 @@ - - */ -class Carousel extends BaseModule -{ - const DOMAIN_NAME = 'carousel'; - - public function preActivation(ConnectionInterface $con = null) - { - if (! $this->getConfigValue('is_initialized', false)) { - $database = new Database($con); - - $database->insertSql(null, array(__DIR__ . '/Config/thelia.sql')); - - $this->setConfigValue('is_initialized', true); - } - - return true; - } - - public function destroy(ConnectionInterface $con = null, $deleteModuleData = false) - { - $database = new Database($con); - - $database->insertSql(null, array(__DIR__ . '/Config/sql/destroy.sql')); - } - - public function getUploadDir() - { - $uploadDir = ConfigQuery::read('images_library_path'); - - if ($uploadDir === null) { - $uploadDir = THELIA_LOCAL_DIR . 'media' . DS . 'images'; - } else { - $uploadDir = THELIA_ROOT . $uploadDir; - } - - return $uploadDir . DS . Carousel::DOMAIN_NAME; - } - - /** - * @param string $currentVersion - * @param string $newVersion - * @param ConnectionInterface $con - * @author Thomas Arnaud - */ - public function update($currentVersion, $newVersion, ConnectionInterface $con = null) - { - $uploadDir = $this->getUploadDir(); - $fileSystem = new Filesystem(); - - if (!$fileSystem->exists($uploadDir) && $fileSystem->exists(__DIR__ . DS . 'media' . DS . 'carousel')) { - $finder = new Finder(); - $finder->files()->in(__DIR__ . DS . 'media' . DS . 'carousel'); - - $fileSystem->mkdir($uploadDir); - - /** @var SplFileInfo $file */ - foreach ($finder as $file) { - copy($file, $uploadDir . DS . $file->getRelativePathname()); - } - $fileSystem->remove(__DIR__ . DS . 'media'); - } - } -} diff --git a/local/modules/modules/Carousel/Config/config.xml b/local/modules/modules/Carousel/Config/config.xml deleted file mode 100644 index 54642a77..00000000 --- a/local/modules/modules/Carousel/Config/config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - -
    - - - - - - - - - - - - - - diff --git a/local/modules/modules/Carousel/Config/module.xml b/local/modules/modules/Carousel/Config/module.xml deleted file mode 100644 index 6608a359..00000000 --- a/local/modules/modules/Carousel/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - Carousel\Carousel - - An image carousel - - - Un carrousel d'images - - - en_US - fr_FR - - 2.3.4 - - Manuel Raynaud, Franck Allimant - manu@raynaud.io, franck@cqfdev.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/Carousel/Config/routing.xml b/local/modules/modules/Carousel/Config/routing.xml deleted file mode 100644 index 44e95906..00000000 --- a/local/modules/modules/Carousel/Config/routing.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - Carousel\Controller\ConfigurationController::uploadImage - - - - Carousel\Controller\ConfigurationController::updateAction - - - - Carousel\Controller\ConfigurationController::deleteAction - - - diff --git a/local/modules/modules/Carousel/Config/schema.xml b/local/modules/modules/Carousel/Config/schema.xml deleted file mode 100644 index 20ae4d3a..00000000 --- a/local/modules/modules/Carousel/Config/schema.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - -
    - - -
    diff --git a/local/modules/modules/Carousel/Config/sql/destroy.sql b/local/modules/modules/Carousel/Config/sql/destroy.sql deleted file mode 100644 index e6116063..00000000 --- a/local/modules/modules/Carousel/Config/sql/destroy.sql +++ /dev/null @@ -1,6 +0,0 @@ -SET FOREIGN_KEY_CHECKS = 0; - -DROP TABLE IF EXISTS `carousel`; -DROP TABLE IF EXISTS `carousel_i18n`; - -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/local/modules/modules/Carousel/Config/thelia.sql b/local/modules/modules/Carousel/Config/thelia.sql deleted file mode 100644 index 71aa0d49..00000000 --- a/local/modules/modules/Carousel/Config/thelia.sql +++ /dev/null @@ -1,43 +0,0 @@ -# This is a fix for InnoDB in MySQL >= 4.1.x -# It "suspends judgement" for fkey relationships until are tables are set. -SET FOREIGN_KEY_CHECKS = 0; - --- --------------------------------------------------------------------- --- carousel --- --------------------------------------------------------------------- - -CREATE TABLE IF NOT EXISTS `carousel` -( - `id` INTEGER NOT NULL AUTO_INCREMENT, - `file` VARCHAR(255), - `position` INTEGER, - `url` VARCHAR(255), - `created_at` DATETIME, - `updated_at` DATETIME, - PRIMARY KEY (`id`) -) ENGINE=InnoDB; - --- --------------------------------------------------------------------- --- carousel_i18n --- --------------------------------------------------------------------- - - - -CREATE TABLE IF NOT EXISTS `carousel_i18n` -( - `id` INTEGER NOT NULL, - `locale` VARCHAR(5) DEFAULT 'en_US' NOT NULL, - `alt` VARCHAR(255), - `title` VARCHAR(255), - `description` LONGTEXT, - `chapo` TEXT, - `postscriptum` TEXT, - PRIMARY KEY (`id`,`locale`), - CONSTRAINT `carousel_i18n_FK_1` - FOREIGN KEY (`id`) - REFERENCES `carousel` (`id`) - ON DELETE CASCADE -) ENGINE=InnoDB; - -# This restores the fkey checks, after having unset them earlier -SET FOREIGN_KEY_CHECKS = 1; diff --git a/local/modules/modules/Carousel/Controller/ConfigurationController.php b/local/modules/modules/Carousel/Controller/ConfigurationController.php deleted file mode 100644 index f602762e..00000000 --- a/local/modules/modules/Carousel/Controller/ConfigurationController.php +++ /dev/null @@ -1,184 +0,0 @@ - - */ -class ConfigurationController extends BaseAdminController -{ - - public function uploadImage() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::CREATE)) { - return $response; - } - - $request = $this->getRequest(); - $form = $this->createForm('carousel.image'); - $error_message = null; - try { - $this->validateForm($form); - - /** @var \Symfony\Component\HttpFoundation\File\UploadedFile $fileBeingUploaded */ - $fileBeingUploaded = $request->files->get(sprintf('%s[file]', $form->getName()), null, true); - - $fileModel = new Carousel(); - - $fileCreateOrUpdateEvent = new FileCreateOrUpdateEvent(1); - $fileCreateOrUpdateEvent->setModel($fileModel); - $fileCreateOrUpdateEvent->setUploadedFile($fileBeingUploaded); - - $this->dispatch( - TheliaEvents::IMAGE_SAVE, - $fileCreateOrUpdateEvent - ); - - // Compensate issue #1005 - $langs = LangQuery::create()->find(); - - /** @var Lang $lang */ - foreach ($langs as $lang) { - $fileCreateOrUpdateEvent->getModel()->setLocale($lang->getLocale())->setTitle('')->save(); - } - - $response = $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'carousel upload', - $error_message, - $form - ); - - $response = $this->render( - "module-configure", - [ - 'module_code' => 'Carousel' - ] - ); - } - - return $response; - } - - /** - * @param Form $form - * @param string $fieldName - * @param int $id - * @return string - */ - protected function getFormFieldValue($form, $fieldName, $id) - { - $value = $form->get(sprintf('%s%d', $fieldName, $id))->getData(); - - return $value; - } - - public function updateAction() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::UPDATE)) { - return $response; - } - - $form = $this->createForm('carousel.update'); - - $error_message = null; - - try { - $updateForm = $this->validateForm($form); - - $carousels = CarouselQuery::create()->findAllByPosition(); - - $locale = $this->getCurrentEditionLocale(); - - /** @var Carousel $carousel */ - foreach ($carousels as $carousel) { - $id = $carousel->getId(); - - $carousel - ->setPosition($this->getFormFieldValue($updateForm, 'position', $id)) - ->setUrl($this->getFormFieldValue($updateForm, 'url', $id)) - ->setLocale($locale) - ->setTitle($this->getFormFieldValue($updateForm, 'title', $id)) - ->setAlt($this->getFormFieldValue($updateForm, 'alt', $id)) - ->setChapo($this->getFormFieldValue($updateForm, 'chapo', $id)) - ->setDescription($this->getFormFieldValue($updateForm, 'description', $id)) - ->setPostscriptum($this->getFormFieldValue($updateForm, 'postscriptum', $id)) - ->save(); - } - - $response = $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'carousel upload', - $error_message, - $form - ); - - $response = $this->render("module-configure", [ 'module_code' => 'Carousel' ]); - } - - return $response; - - } - - public function deleteAction() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, ['carousel'], AccessManager::DELETE)) { - return $response; - } - - $imageId = $this->getRequest()->request->get('image_id'); - - if ($imageId != "") { - $carousel = CarouselQuery::create()->findPk($imageId); - - if (null !== $carousel) { - $carousel->delete(); - } - } - - return $this->redirectToConfigurationPage(); - } - - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Carousel')); - } -} \ No newline at end of file diff --git a/local/modules/modules/Carousel/Form/CarouselImageForm.php b/local/modules/modules/Carousel/Form/CarouselImageForm.php deleted file mode 100644 index 5ad985e3..00000000 --- a/local/modules/modules/Carousel/Form/CarouselImageForm.php +++ /dev/null @@ -1,56 +0,0 @@ - - */ -class CarouselImageForm extends BaseForm -{ - /** - * @inheritdoc - */ - protected function buildForm() - { - $translator = Translator::getInstance(); - $this->formBuilder - ->add( - 'file', - 'file', - [ - 'constraints' => [ - new Image() - ], - 'label' => $translator->trans('Carousel image', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'file' - ] - ] - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return 'carousel_image'; - } -} \ No newline at end of file diff --git a/local/modules/modules/Carousel/Form/CarouselUpdateForm.php b/local/modules/modules/Carousel/Form/CarouselUpdateForm.php deleted file mode 100644 index 3bf3a14d..00000000 --- a/local/modules/modules/Carousel/Form/CarouselUpdateForm.php +++ /dev/null @@ -1,166 +0,0 @@ - - */ -class CarouselUpdateForm extends BaseForm -{ - /** - * @inheritdoc - */ - protected function buildForm() - { - $formBuilder = $this->formBuilder; - - $carousels = CarouselQuery::create()->orderByPosition()->find(); - - /** @var \Carousel\Model\Carousel $carousel */ - foreach ($carousels as $carousel) { - $id = $carousel->getId(); - - $formBuilder->add( - 'position' . $id, - 'text', - [ - 'label' => $this->translator->trans('Image position in carousel', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'position' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Image position in carousel', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'alt' . $id, - 'text', - [ - 'label' => $this->translator->trans('Alternative image text', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'alt' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Displayed when image is not visible', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'url' . $id, - 'url', - [ - 'label' => $this->translator->trans('Image URL', [], Carousel::DOMAIN_NAME), - 'label_attr' => [ - 'for' => 'url' . $id - ], - 'required' => false, - 'attr' => [ - 'placeholder' => $this->translator->trans( - 'Please enter a valid URL', - [], - Carousel::DOMAIN_NAME - ) - ] - ] - )->add( - 'title' . $id, - 'text', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Title'), - 'label_attr' => [ - 'for' => 'title_field' . $id - ], - 'attr' => [ - 'placeholder' => $this->translator->trans('A descriptive title') - ] - ] - )->add( - 'chapo' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Summary'), - 'label_attr' => [ - 'for' => 'summary_field' . $id, - 'help' => $this->translator->trans( - 'A short description, used when a summary or an introduction is required' - ) - ], - 'attr' => [ - 'rows' => 3, - 'placeholder' => $this->translator->trans('Short description text') - ] - ] - )->add( - 'description' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Detailed description'), - 'label_attr' => [ - 'for' => 'detailed_description_field' . $id, - 'help' => $this->translator->trans('The detailed description.') - ], - 'attr' => [ - 'rows' => 5 - ] - ] - )->add( - 'postscriptum' . $id, - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->translator->trans('Conclusion'), - 'label_attr' => [ - 'for' => 'conclusion_field' . $id, - 'help' => $this->translator->trans( - 'A short text, used when an additional or supplemental information is required.' - ) - ], - 'attr' => [ - 'placeholder' => $this->translator->trans('Short additional text'), - 'rows' => 3, - ] - ] - ); - } - } - - /** - * @inheritdoc - */ - public function getName() - { - return "carousel_update"; - } -} \ No newline at end of file diff --git a/local/modules/modules/Carousel/Hook/BackHook.php b/local/modules/modules/Carousel/Hook/BackHook.php deleted file mode 100644 index b033670d..00000000 --- a/local/modules/modules/Carousel/Hook/BackHook.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class BackHook extends BaseHook -{ - - /** - * Add a new entry in the admin tools menu - * - * should add to event a fragment with fields : id,class,url,title - * - * @param HookRenderBlockEvent $event - */ - public function onMainTopMenuTools(HookRenderBlockEvent $event) - { - $event->add( - [ - 'id' => 'tools_menu_carousel', - 'class' => '', - 'url' => URL::getInstance()->absoluteUrl('/admin/module/Carousel'), - 'title' => $this->trans('Edit your carousel', [], Carousel::DOMAIN_NAME) - ] - ); - } -} diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/de_DE.php b/local/modules/modules/Carousel/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 3efa0e2d..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ein Bild zu Karussell hinzufügen', - 'Add this image to the carousel' => 'Dieses Bild zu Karussell hinzufügen', - 'Carousel image' => 'Karussell-Bild', - 'Carousel images' => 'Karussell-Bilder', - 'Delete a carousel image' => 'Ein Karussell-Bild löschen', - 'Do you really want to remove this image from the carousel ?' => 'Wollen Sie dieses Bild wirklich aus dem Karussell entfernen?', - 'Edit your carousel.' => 'Karussell bearbeiten.', - 'Remove this image' => 'Dieses Bild entfernen', - 'Your carousel contains no image. Please add one using the form above.' => 'Das Karussell enthält kein Bild. Bitte fügen Sie mit dem Formular oben eines hinzu.', - 'Position' => 'Position', -]; diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/en_US.php b/local/modules/modules/Carousel/I18n/backOffice/default/en_US.php deleted file mode 100644 index 4807e54b..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Add an image to the carousel', - 'Add this image to the carousel' => 'Add this image to the carousel', - 'Carousel image' => 'Carousel image', - 'Carousel images' => 'Carousel images', - 'Delete a carousel image' => 'Delete a carousel image', - 'Do you really want to remove this image from the carousel ?' => 'Do you really want to remove this image from the carousel ?', - 'Edit your carousel.' => 'Edit your carousel.', - 'Remove this image' => 'Remove this image', - 'Your carousel contains no image. Please add one using the form above.' => 'Your carousel contains no image. Please add one using the form above.', - 'Position' => 'Position', -); diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/fr_FR.php b/local/modules/modules/Carousel/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index bb28a5bd..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ajouter une image au carrousel', - 'Add this image to the carousel' => 'Ajouter l\'image au carrousel', - 'Carousel image' => 'Image du carrousel', - 'Carousel images' => 'Images du carrousel', - 'Delete a carousel image' => 'Supprimer une image du carrousel', - 'Do you really want to remove this image from the carousel ?' => 'Voulez-vous vraiment retirer cette image du carrousel ?', - 'Edit your carousel.' => 'Modifier votre carrousel', - 'Remove this image' => 'Supprimer cette image', - 'Your carousel contains no image. Please add one using the form above.' => 'Votre carrousel ne contient aucune image. Ajoutez votre première image avec le formulaire ci-dessus', - 'Position' => 'Position', -]; diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/ru_RU.php b/local/modules/modules/Carousel/I18n/backOffice/default/ru_RU.php deleted file mode 100644 index fdc531d4..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/ru_RU.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Добавить изображение в карусель', - 'Add this image to the carousel' => 'Добавить это изображение в карусель', - 'Carousel image' => 'Изображение карусели', - 'Carousel images' => 'Изображения карусели', - 'Delete a carousel image' => 'Удалить изображение карусели', - 'Do you really want to remove this image from the carousel ?' => 'Вы действительно хотите удалить это изображение из карусели ?', - 'Edit your carousel.' => 'Редактировать вашу карусель.', - 'Remove this image' => 'Удалить это изображение', - 'Your carousel contains no image. Please add one using the form above.' => 'Ваша карусель не содержит изображений. Пожалуйста, добавьте одно используя форму ниже.', - 'Position' => 'Позиция', -); diff --git a/local/modules/modules/Carousel/I18n/backOffice/default/tr_TR.php b/local/modules/modules/Carousel/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index c9f9f587..00000000 --- a/local/modules/modules/Carousel/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Slayt için bir resim ekle', - 'Add this image to the carousel' => 'slayt için bu resim ekleme', - 'Carousel image' => 'slayt görüntü', - 'Carousel images' => 'slayt görüntüleri', - 'Delete a carousel image' => 'Bir slayt resmi silme', - 'Do you really want to remove this image from the carousel ?' => 'Bu görüntüyü slayttan kaldırmak istiyor musunuz?', - 'Edit your carousel.' => 'slayt düzenleyin.', - 'Remove this image' => 'Bu resmi kaldırma', - 'Your carousel contains no image. Please add one using the form above.' => 'Senin slayt hiçbir görüntü içermiyor . Lütfen yukarıdaki formu kullanarak ekleyin.', - 'Position' => 'Pozisyon', -]; diff --git a/local/modules/modules/Carousel/I18n/de_DE.php b/local/modules/modules/Carousel/I18n/de_DE.php deleted file mode 100644 index 35b35e10..00000000 --- a/local/modules/modules/Carousel/I18n/de_DE.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Beschreibungstitel', - 'A short description, used when a summary or an introduction is required' => 'Eine kurze beschreibung, benutzt wenn eine Zusammenfassung order eine Einleitung ist nötig', - 'A short text, used when an additional or supplemental information is required.' => 'Ein kurzer Text, der verwendet wird, wenn eine zusätzliche oder ergänzende Information erforderlich ist.', - 'Alternative image text' => 'Alternativer Bildtext', - 'Carousel image' => 'Karussell-Bild', - 'Conclusion' => 'Abschluss', - 'Detailed description' => 'Detaillierte Beschreibung', - 'Displayed when image is not visible' => 'Angezeigt, wenn das Bild nicht sichtbar ist', - 'Image URL' => 'Bild-URL', - 'Image position in carousel' => 'Position des Bildes im Karussell', - 'Please enter a valid URL' => 'Bitte geben Sie eine gültige URL ein', - 'Short additional text' => 'Kurzer zusätzlicher Text', - 'Short description text' => 'Kurzes Beschreibungstext', - 'Summary' => 'Zusammenfassung', - 'The detailed description.' => 'Die detaillierte Beschreibung.', - 'Title' => 'Titel', -]; diff --git a/local/modules/modules/Carousel/I18n/en_US.php b/local/modules/modules/Carousel/I18n/en_US.php deleted file mode 100644 index dcc5d1c4..00000000 --- a/local/modules/modules/Carousel/I18n/en_US.php +++ /dev/null @@ -1,20 +0,0 @@ - 'A descriptive title', - 'A short description, used when a summary or an introduction is required' => 'A short description, used when a summary or an introduction is required', - 'A short text, used when an additional or supplemental information is required.' => 'A short text, used when an additional or supplemental information is required.', - 'Alternative image text' => 'Alternative image text', - 'Carousel image' => 'Carousel image', - 'Conclusion' => 'Conclusion', - 'Detailed description' => 'Detailed description', - 'Displayed when image is not visible' => 'Displayed when image is not visible', - 'Image URL' => 'Image URL', - 'Image position in carousel' => 'Image position in carousel', - 'Please enter a valid URL' => 'Please enter a valid URL', - 'Short additional text' => 'Short additional text', - 'Short description text' => 'Short description text', - 'Summary' => 'Summary', - 'The detailed description.' => 'The detailed description.', - 'Title' => 'Title', -); diff --git a/local/modules/modules/Carousel/I18n/fr_FR.php b/local/modules/modules/Carousel/I18n/fr_FR.php deleted file mode 100644 index f5318231..00000000 --- a/local/modules/modules/Carousel/I18n/fr_FR.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Un titre descriptif', - 'A short description, used when a summary or an introduction is required' => 'Une courte description, utilisée lorsqu\'un résumé ou une introduction est requise', - 'A short text, used when an additional or supplemental information is required.' => 'Un texte court, utilisé quand une conclusion ou une information complémentaire est nécessaire.', - 'Alternative image text' => 'Texte alternatif de l\'image', - 'Carousel image' => 'Image du carrousel', - 'Conclusion' => 'Conclusion', - 'Detailed description' => 'Description détaillée', - 'Displayed when image is not visible' => 'Affiché lorsque l\'image n\'est pas visible', - 'Image URL' => 'URL de l\'image', - 'Image position in carousel' => 'Position de l\'image dans le carrousel', - 'Please enter a valid URL' => 'Merci d\'ndiquer une URL valide', - 'Short additional text' => 'Un court texte supplémentaire', - 'Short description text' => 'Un court texte de description', - 'Summary' => 'Résumé', - 'The detailed description.' => 'La description détaillée.', - 'Title' => 'Titre', -]; diff --git a/local/modules/modules/Carousel/I18n/it_IT.php b/local/modules/modules/Carousel/I18n/it_IT.php deleted file mode 100644 index 3919d98b..00000000 --- a/local/modules/modules/Carousel/I18n/it_IT.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Un titolo descrittivo', - 'A short description, used when a summary or an introduction is required' => 'Una breve descrizione, utilizzata quando è necessario un sommario o un\'introduzione', - 'Conclusion' => 'Conclusione', - 'Detailed description' => 'Descrizione dettagliata', - 'Summary' => 'Riassunto', - 'The detailed description.' => 'La descrizione dettagliata.', - 'Title' => 'Titolo', -]; diff --git a/local/modules/modules/Carousel/I18n/tr_TR.php b/local/modules/modules/Carousel/I18n/tr_TR.php deleted file mode 100644 index e8505474..00000000 --- a/local/modules/modules/Carousel/I18n/tr_TR.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Açıklayıcı bir başlık', - 'A short description, used when a summary or an introduction is required' => 'Bir Özeti veya giriş gerekli olduğunda kullanılan kısa bir açıklama', - 'A short text, used when an additional or supplemental information is required.' => 'Bir ek ya da tamamlayıcı bilgi gerekli olduğunda kullanılan kısa bir metin.', - 'Alternative image text' => 'Alternatif resim metini', - 'Carousel image' => 'slayt görüntü', - 'Conclusion' => 'Sonuç', - 'Detailed description' => 'Detaylı açıklama', - 'Displayed when image is not visible' => 'resim görünür olmadığında görüntülenen', - 'Image URL' => 'Resim Bağlantı [Link]', - 'Image position in carousel' => 'slayt bulunduğu resim', - 'Please enter a valid URL' => 'Lütfen geçerli bir URL girin', - 'Short additional text' => 'Kısa ek metin', - 'Short description text' => 'Kısa açıklama metni', - 'Summary' => 'Özet', - 'The detailed description.' => 'Ayrıntılı açıklama.', - 'Title' => 'Başlık', -]; diff --git a/local/modules/modules/Carousel/Loop/CarouselLoop.php b/local/modules/modules/Carousel/Loop/CarouselLoop.php deleted file mode 100644 index 5813a551..00000000 --- a/local/modules/modules/Carousel/Loop/CarouselLoop.php +++ /dev/null @@ -1,190 +0,0 @@ - - */ -class CarouselLoop extends Image -{ - - - /** - * @inheritdoc - */ - protected function getArgDefinitions() - { - return new ArgumentCollection( - Argument::createIntTypeArgument('width'), - Argument::createIntTypeArgument('height'), - Argument::createIntTypeArgument('rotation', 0), - Argument::createAnyTypeArgument('background_color'), - Argument::createIntTypeArgument('quality'), - new Argument( - 'resize_mode', - new TypeCollection( - new EnumType(array('crop', 'borders', 'none')) - ), - 'none' - ), - new Argument( - 'order', - new TypeCollection( - new EnumListType(array('alpha', 'alpha-reverse', 'manual', 'manual-reverse', 'random')) - ), - 'manual' - ), - Argument::createAnyTypeArgument('effects'), - Argument::createBooleanTypeArgument('allow_zoom', false) - ); - } - - /** - * @param LoopResult $loopResult - * - * @return LoopResult - */ - public function parseResults(LoopResult $loopResult) - { - /** @var \Carousel\Model\Carousel $carousel */ - foreach ($loopResult->getResultDataCollection() as $carousel) { - $loopResultRow = new LoopResultRow($carousel); - - $event = new ImageEvent(); - $event->setSourceFilepath($carousel->getUploadDir() . DS . $carousel->getFile()) - ->setCacheSubdirectory('carousel'); - - switch ($this->getResizeMode()) { - case 'crop': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; - break; - - case 'borders': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; - break; - - case 'none': - default: - $resize_mode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; - - } - - // Prepare tranformations - $width = $this->getWidth(); - $height = $this->getHeight(); - $rotation = $this->getRotation(); - $background_color = $this->getBackgroundColor(); - $quality = $this->getQuality(); - $effects = $this->getEffects(); - - if (!is_null($width)) { - $event->setWidth($width); - } - if (!is_null($height)) { - $event->setHeight($height); - } - $event->setResizeMode($resize_mode); - if (!is_null($rotation)) { - $event->setRotation($rotation); - } - if (!is_null($background_color)) { - $event->setBackgroundColor($background_color); - } - if (!is_null($quality)) { - $event->setQuality($quality); - } - if (!is_null($effects)) { - $event->setEffects($effects); - } - - $event->setAllowZoom($this->getAllowZoom()); - - // Dispatch image processing event - $this->dispatcher->dispatch(TheliaEvents::IMAGE_PROCESS, $event); - - $loopResultRow - ->set('ID', $carousel->getId()) - ->set("LOCALE", $this->locale) - ->set("IMAGE_URL", $event->getFileUrl()) - ->set("ORIGINAL_IMAGE_URL", $event->getOriginalFileUrl()) - ->set("IMAGE_PATH", $event->getCacheFilepath()) - ->set("ORIGINAL_IMAGE_PATH", $event->getSourceFilepath()) - ->set("TITLE", $carousel->getVirtualColumn('i18n_TITLE')) - ->set("CHAPO", $carousel->getVirtualColumn('i18n_CHAPO')) - ->set("DESCRIPTION", $carousel->getVirtualColumn('i18n_DESCRIPTION')) - ->set("POSTSCRIPTUM", $carousel->getVirtualColumn('i18n_POSTSCRIPTUM')) - ->set("ALT", $carousel->getVirtualColumn('i18n_ALT')) - ->set("URL", $carousel->getUrl()) - ->set('POSITION', $carousel->getPosition()) - ; - - $loopResult->addRow($loopResultRow); - } - - return $loopResult; - } - - /** - * this method returns a Propel ModelCriteria - * - * @return \Propel\Runtime\ActiveQuery\ModelCriteria - */ - public function buildModelCriteria() - { - $search = CarouselQuery::create(); - - $this->configureI18nProcessing($search, [ 'ALT', 'TITLE', 'CHAPO', 'DESCRIPTION', 'POSTSCRIPTUM' ]); - - $orders = $this->getOrder(); - - // Results ordering - foreach ($orders as $order) { - switch ($order) { - case "alpha": - $search->addAscendingOrderByColumn('i18n_TITLE'); - break; - case "alpha-reverse": - $search->addDescendingOrderByColumn('i18n_TITLE'); - break; - case "manual-reverse": - $search->orderByPosition(Criteria::DESC); - break; - case "manual": - $search->orderByPosition(Criteria::ASC); - break; - case "random": - $search->clearOrderByColumns(); - $search->addAscendingOrderByColumn('RAND()'); - break(2); - break; - } - } - - return $search; - } -} diff --git a/local/modules/modules/Carousel/Model/Base/Carousel.php b/local/modules/modules/Carousel/Model/Base/Carousel.php deleted file mode 100644 index 591337fb..00000000 --- a/local/modules/modules/Carousel/Model/Base/Carousel.php +++ /dev/null @@ -1,1932 +0,0 @@ -modifiedColumns; - } - - /** - * Has specified column been modified? - * - * @param string $col column fully qualified name (TableMap::TYPE_COLNAME), e.g. Book::AUTHOR_ID - * @return boolean True if $col has been modified. - */ - public function isColumnModified($col) - { - return $this->modifiedColumns && isset($this->modifiedColumns[$col]); - } - - /** - * Get the columns that have been modified in this object. - * @return array A unique list of the modified column names for this object. - */ - public function getModifiedColumns() - { - return $this->modifiedColumns ? array_keys($this->modifiedColumns) : []; - } - - /** - * Returns whether the object has ever been saved. This will - * be false, if the object was retrieved from storage or was created - * and then saved. - * - * @return boolean true, if the object has never been persisted. - */ - public function isNew() - { - return $this->new; - } - - /** - * Setter for the isNew attribute. This method will be called - * by Propel-generated children and objects. - * - * @param boolean $b the state of the object. - */ - public function setNew($b) - { - $this->new = (Boolean) $b; - } - - /** - * Whether this object has been deleted. - * @return boolean The deleted state of this object. - */ - public function isDeleted() - { - return $this->deleted; - } - - /** - * Specify whether this object has been deleted. - * @param boolean $b The deleted state of this object. - * @return void - */ - public function setDeleted($b) - { - $this->deleted = (Boolean) $b; - } - - /** - * Sets the modified state for the object to be false. - * @param string $col If supplied, only the specified column is reset. - * @return void - */ - public function resetModified($col = null) - { - if (null !== $col) { - if (isset($this->modifiedColumns[$col])) { - unset($this->modifiedColumns[$col]); - } - } else { - $this->modifiedColumns = array(); - } - } - - /** - * Compares this with another Carousel instance. If - * obj is an instance of Carousel, delegates to - * equals(Carousel). Otherwise, returns false. - * - * @param mixed $obj The object to compare to. - * @return boolean Whether equal to the object specified. - */ - public function equals($obj) - { - $thisclazz = get_class($this); - if (!is_object($obj) || !($obj instanceof $thisclazz)) { - return false; - } - - if ($this === $obj) { - return true; - } - - if (null === $this->getPrimaryKey() - || null === $obj->getPrimaryKey()) { - return false; - } - - return $this->getPrimaryKey() === $obj->getPrimaryKey(); - } - - /** - * If the primary key is not null, return the hashcode of the - * primary key. Otherwise, return the hash code of the object. - * - * @return int Hashcode - */ - public function hashCode() - { - if (null !== $this->getPrimaryKey()) { - return crc32(serialize($this->getPrimaryKey())); - } - - return crc32(serialize(clone $this)); - } - - /** - * Get the associative array of the virtual columns in this object - * - * @return array - */ - public function getVirtualColumns() - { - return $this->virtualColumns; - } - - /** - * Checks the existence of a virtual column in this object - * - * @param string $name The virtual column name - * @return boolean - */ - public function hasVirtualColumn($name) - { - return array_key_exists($name, $this->virtualColumns); - } - - /** - * Get the value of a virtual column in this object - * - * @param string $name The virtual column name - * @return mixed - * - * @throws PropelException - */ - public function getVirtualColumn($name) - { - if (!$this->hasVirtualColumn($name)) { - throw new PropelException(sprintf('Cannot get value of inexistent virtual column %s.', $name)); - } - - return $this->virtualColumns[$name]; - } - - /** - * Set the value of a virtual column in this object - * - * @param string $name The virtual column name - * @param mixed $value The value to give to the virtual column - * - * @return Carousel The current object, for fluid interface - */ - public function setVirtualColumn($name, $value) - { - $this->virtualColumns[$name] = $value; - - return $this; - } - - /** - * Logs a message using Propel::log(). - * - * @param string $msg - * @param int $priority One of the Propel::LOG_* logging levels - * @return boolean - */ - protected function log($msg, $priority = Propel::LOG_INFO) - { - return Propel::log(get_class($this) . ': ' . $msg, $priority); - } - - /** - * Populate the current object from a string, using a given parser format - * - * $book = new Book(); - * $book->importFrom('JSON', '{"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, - * or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param string $data The source data to import from - * - * @return Carousel The current object, for fluid interface - */ - public function importFrom($parser, $data) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - $this->fromArray($parser->toArray($data), TableMap::TYPE_PHPNAME); - - return $this; - } - - /** - * Export the current object properties to a string, using a given parser format - * - * $book = BookQuery::create()->findPk(9012); - * echo $book->exportTo('JSON'); - * => {"Id":9012,"Title":"Don Juan","ISBN":"0140422161","Price":12.99,"PublisherId":1234,"AuthorId":5678}'); - * - * - * @param mixed $parser A AbstractParser instance, or a format name ('XML', 'YAML', 'JSON', 'CSV') - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy load(ed) columns. Defaults to TRUE. - * @return string The exported data - */ - public function exportTo($parser, $includeLazyLoadColumns = true) - { - if (!$parser instanceof AbstractParser) { - $parser = AbstractParser::getParser($parser); - } - - return $parser->fromArray($this->toArray(TableMap::TYPE_PHPNAME, $includeLazyLoadColumns, array(), true)); - } - - /** - * Clean up internal collections prior to serializing - * Avoids recursive loops that turn into segmentation faults when serializing - */ - public function __sleep() - { - $this->clearAllReferences(); - - return array_keys(get_object_vars($this)); - } - - /** - * Get the [id] column value. - * - * @return int - */ - public function getId() - { - - return $this->id; - } - - /** - * Get the [file] column value. - * - * @return string - */ - public function getFile() - { - - return $this->file; - } - - /** - * Get the [position] column value. - * - * @return int - */ - public function getPosition() - { - - return $this->position; - } - - /** - * Get the [url] column value. - * - * @return string - */ - public function getUrl() - { - - return $this->url; - } - - /** - * Get the [optionally formatted] temporal [created_at] column value. - * - * - * @param string $format The date/time format string (either date()-style or strftime()-style). - * If format is NULL, then the raw \DateTime object will be returned. - * - * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 - * - * @throws PropelException - if unable to parse/validate the date/time value. - */ - public function getCreatedAt($format = NULL) - { - if ($format === null) { - return $this->created_at; - } else { - return $this->created_at instanceof \DateTime ? $this->created_at->format($format) : null; - } - } - - /** - * Get the [optionally formatted] temporal [updated_at] column value. - * - * - * @param string $format The date/time format string (either date()-style or strftime()-style). - * If format is NULL, then the raw \DateTime object will be returned. - * - * @return mixed Formatted date/time value as string or \DateTime object (if format is NULL), NULL if column is NULL, and 0 if column value is 0000-00-00 00:00:00 - * - * @throws PropelException - if unable to parse/validate the date/time value. - */ - public function getUpdatedAt($format = NULL) - { - if ($format === null) { - return $this->updated_at; - } else { - return $this->updated_at instanceof \DateTime ? $this->updated_at->format($format) : null; - } - } - - /** - * Set the value of [id] column. - * - * @param int $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setId($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->id !== $v) { - $this->id = $v; - $this->modifiedColumns[CarouselTableMap::ID] = true; - } - - - return $this; - } // setId() - - /** - * Set the value of [file] column. - * - * @param string $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setFile($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->file !== $v) { - $this->file = $v; - $this->modifiedColumns[CarouselTableMap::FILE] = true; - } - - - return $this; - } // setFile() - - /** - * Set the value of [position] column. - * - * @param int $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setPosition($v) - { - if ($v !== null) { - $v = (int) $v; - } - - if ($this->position !== $v) { - $this->position = $v; - $this->modifiedColumns[CarouselTableMap::POSITION] = true; - } - - - return $this; - } // setPosition() - - /** - * Set the value of [url] column. - * - * @param string $v new value - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setUrl($v) - { - if ($v !== null) { - $v = (string) $v; - } - - if ($this->url !== $v) { - $this->url = $v; - $this->modifiedColumns[CarouselTableMap::URL] = true; - } - - - return $this; - } // setUrl() - - /** - * Sets the value of [created_at] column to a normalized version of the date/time value specified. - * - * @param mixed $v string, integer (timestamp), or \DateTime value. - * Empty strings are treated as NULL. - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setCreatedAt($v) - { - $dt = PropelDateTime::newInstance($v, null, '\DateTime'); - if ($this->created_at !== null || $dt !== null) { - if ($dt !== $this->created_at) { - $this->created_at = $dt; - $this->modifiedColumns[CarouselTableMap::CREATED_AT] = true; - } - } // if either are not null - - - return $this; - } // setCreatedAt() - - /** - * Sets the value of [updated_at] column to a normalized version of the date/time value specified. - * - * @param mixed $v string, integer (timestamp), or \DateTime value. - * Empty strings are treated as NULL. - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function setUpdatedAt($v) - { - $dt = PropelDateTime::newInstance($v, null, '\DateTime'); - if ($this->updated_at !== null || $dt !== null) { - if ($dt !== $this->updated_at) { - $this->updated_at = $dt; - $this->modifiedColumns[CarouselTableMap::UPDATED_AT] = true; - } - } // if either are not null - - - return $this; - } // setUpdatedAt() - - /** - * Indicates whether the columns in this object are only set to default values. - * - * This method can be used in conjunction with isModified() to indicate whether an object is both - * modified _and_ has some values set which are non-default. - * - * @return boolean Whether the columns in this object are only been set with default values. - */ - public function hasOnlyDefaultValues() - { - // otherwise, everything was equal, so return TRUE - return true; - } // hasOnlyDefaultValues() - - /** - * Hydrates (populates) the object variables with values from the database resultset. - * - * An offset (0-based "start column") is specified so that objects can be hydrated - * with a subset of the columns in the resultset rows. This is needed, for example, - * for results of JOIN queries where the resultset row includes columns from two or - * more tables. - * - * @param array $row The row returned by DataFetcher->fetch(). - * @param int $startcol 0-based offset column which indicates which restultset column to start with. - * @param boolean $rehydrate Whether this object is being re-hydrated from the database. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @return int next starting column - * @throws PropelException - Any caught Exception will be rewrapped as a PropelException. - */ - public function hydrate($row, $startcol = 0, $rehydrate = false, $indexType = TableMap::TYPE_NUM) - { - try { - - - $col = $row[TableMap::TYPE_NUM == $indexType ? 0 + $startcol : CarouselTableMap::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)]; - $this->id = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 1 + $startcol : CarouselTableMap::translateFieldName('File', TableMap::TYPE_PHPNAME, $indexType)]; - $this->file = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 2 + $startcol : CarouselTableMap::translateFieldName('Position', TableMap::TYPE_PHPNAME, $indexType)]; - $this->position = (null !== $col) ? (int) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 3 + $startcol : CarouselTableMap::translateFieldName('Url', TableMap::TYPE_PHPNAME, $indexType)]; - $this->url = (null !== $col) ? (string) $col : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 4 + $startcol : CarouselTableMap::translateFieldName('CreatedAt', TableMap::TYPE_PHPNAME, $indexType)]; - if ($col === '0000-00-00 00:00:00') { - $col = null; - } - $this->created_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - - $col = $row[TableMap::TYPE_NUM == $indexType ? 5 + $startcol : CarouselTableMap::translateFieldName('UpdatedAt', TableMap::TYPE_PHPNAME, $indexType)]; - if ($col === '0000-00-00 00:00:00') { - $col = null; - } - $this->updated_at = (null !== $col) ? PropelDateTime::newInstance($col, null, '\DateTime') : null; - $this->resetModified(); - - $this->setNew(false); - - if ($rehydrate) { - $this->ensureConsistency(); - } - - return $startcol + 6; // 6 = CarouselTableMap::NUM_HYDRATE_COLUMNS. - - } catch (Exception $e) { - throw new PropelException("Error populating \Carousel\Model\Carousel object", 0, $e); - } - } - - /** - * Checks and repairs the internal consistency of the object. - * - * This method is executed after an already-instantiated object is re-hydrated - * from the database. It exists to check any foreign keys to make sure that - * the objects related to the current object are correct based on foreign key. - * - * You can override this method in the stub class, but you should always invoke - * the base method from the overridden method (i.e. parent::ensureConsistency()), - * in case your model changes. - * - * @throws PropelException - */ - public function ensureConsistency() - { - } // ensureConsistency - - /** - * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. - * - * This will only work if the object has been saved and has a valid primary key set. - * - * @param boolean $deep (optional) Whether to also de-associated any related objects. - * @param ConnectionInterface $con (optional) The ConnectionInterface connection to use. - * @return void - * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db - */ - public function reload($deep = false, ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("Cannot reload a deleted object."); - } - - if ($this->isNew()) { - throw new PropelException("Cannot reload an unsaved object."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselTableMap::DATABASE_NAME); - } - - // We don't need to alter the object instance pool; we're just modifying this instance - // already in the pool. - - $dataFetcher = ChildCarouselQuery::create(null, $this->buildPkeyCriteria())->setFormatter(ModelCriteria::FORMAT_STATEMENT)->find($con); - $row = $dataFetcher->fetch(); - $dataFetcher->close(); - if (!$row) { - throw new PropelException('Cannot find matching row in the database to reload object values.'); - } - $this->hydrate($row, 0, true, $dataFetcher->getIndexType()); // rehydrate - - if ($deep) { // also de-associate any related objects? - - $this->collCarouselI18ns = null; - - } // if (deep) - } - - /** - * Removes this object from datastore and sets delete attribute. - * - * @param ConnectionInterface $con - * @return void - * @throws PropelException - * @see Carousel::setDeleted() - * @see Carousel::isDeleted() - */ - public function delete(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("This object has already been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - try { - $deleteQuery = ChildCarouselQuery::create() - ->filterByPrimaryKey($this->getPrimaryKey()); - $ret = $this->preDelete($con); - if ($ret) { - $deleteQuery->delete($con); - $this->postDelete($con); - $con->commit(); - $this->setDeleted(true); - } else { - $con->commit(); - } - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Persists this object to the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All modified related objects will also be persisted in the doSave() - * method. This method wraps all precipitate database operations in a - * single transaction. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see doSave() - */ - public function save(ConnectionInterface $con = null) - { - if ($this->isDeleted()) { - throw new PropelException("You cannot save an object that has been deleted."); - } - - if ($con === null) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $con->beginTransaction(); - $isInsert = $this->isNew(); - try { - $ret = $this->preSave($con); - if ($isInsert) { - $ret = $ret && $this->preInsert($con); - // timestampable behavior - if (!$this->isColumnModified(CarouselTableMap::CREATED_AT)) { - $this->setCreatedAt(time()); - } - if (!$this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $this->setUpdatedAt(time()); - } - } else { - $ret = $ret && $this->preUpdate($con); - // timestampable behavior - if ($this->isModified() && !$this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $this->setUpdatedAt(time()); - } - } - if ($ret) { - $affectedRows = $this->doSave($con); - if ($isInsert) { - $this->postInsert($con); - } else { - $this->postUpdate($con); - } - $this->postSave($con); - CarouselTableMap::addInstanceToPool($this); - } else { - $affectedRows = 0; - } - $con->commit(); - - return $affectedRows; - } catch (Exception $e) { - $con->rollBack(); - throw $e; - } - } - - /** - * Performs the work of inserting or updating the row in the database. - * - * If the object is new, it inserts it; otherwise an update is performed. - * All related objects are also updated in this method. - * - * @param ConnectionInterface $con - * @return int The number of rows affected by this insert/update and any referring fk objects' save() operations. - * @throws PropelException - * @see save() - */ - protected function doSave(ConnectionInterface $con) - { - $affectedRows = 0; // initialize var to track total num of affected rows - if (!$this->alreadyInSave) { - $this->alreadyInSave = true; - - if ($this->isNew() || $this->isModified()) { - // persist changes - if ($this->isNew()) { - $this->doInsert($con); - } else { - $this->doUpdate($con); - } - $affectedRows += 1; - $this->resetModified(); - } - - if ($this->carouselI18nsScheduledForDeletion !== null) { - if (!$this->carouselI18nsScheduledForDeletion->isEmpty()) { - \Carousel\Model\CarouselI18nQuery::create() - ->filterByPrimaryKeys($this->carouselI18nsScheduledForDeletion->getPrimaryKeys(false)) - ->delete($con); - $this->carouselI18nsScheduledForDeletion = null; - } - } - - if ($this->collCarouselI18ns !== null) { - foreach ($this->collCarouselI18ns as $referrerFK) { - if (!$referrerFK->isDeleted() && ($referrerFK->isNew() || $referrerFK->isModified())) { - $affectedRows += $referrerFK->save($con); - } - } - } - - $this->alreadyInSave = false; - - } - - return $affectedRows; - } // doSave() - - /** - * Insert the row in the database. - * - * @param ConnectionInterface $con - * - * @throws PropelException - * @see doSave() - */ - protected function doInsert(ConnectionInterface $con) - { - $modifiedColumns = array(); - $index = 0; - - $this->modifiedColumns[CarouselTableMap::ID] = true; - if (null !== $this->id) { - throw new PropelException('Cannot insert a value for auto-increment primary key (' . CarouselTableMap::ID . ')'); - } - - // check the columns in natural order for more readable SQL queries - if ($this->isColumnModified(CarouselTableMap::ID)) { - $modifiedColumns[':p' . $index++] = 'ID'; - } - if ($this->isColumnModified(CarouselTableMap::FILE)) { - $modifiedColumns[':p' . $index++] = 'FILE'; - } - if ($this->isColumnModified(CarouselTableMap::POSITION)) { - $modifiedColumns[':p' . $index++] = 'POSITION'; - } - if ($this->isColumnModified(CarouselTableMap::URL)) { - $modifiedColumns[':p' . $index++] = 'URL'; - } - if ($this->isColumnModified(CarouselTableMap::CREATED_AT)) { - $modifiedColumns[':p' . $index++] = 'CREATED_AT'; - } - if ($this->isColumnModified(CarouselTableMap::UPDATED_AT)) { - $modifiedColumns[':p' . $index++] = 'UPDATED_AT'; - } - - $sql = sprintf( - 'INSERT INTO carousel (%s) VALUES (%s)', - implode(', ', $modifiedColumns), - implode(', ', array_keys($modifiedColumns)) - ); - - try { - $stmt = $con->prepare($sql); - foreach ($modifiedColumns as $identifier => $columnName) { - switch ($columnName) { - case 'ID': - $stmt->bindValue($identifier, $this->id, PDO::PARAM_INT); - break; - case 'FILE': - $stmt->bindValue($identifier, $this->file, PDO::PARAM_STR); - break; - case 'POSITION': - $stmt->bindValue($identifier, $this->position, PDO::PARAM_INT); - break; - case 'URL': - $stmt->bindValue($identifier, $this->url, PDO::PARAM_STR); - break; - case 'CREATED_AT': - $stmt->bindValue($identifier, $this->created_at ? $this->created_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); - break; - case 'UPDATED_AT': - $stmt->bindValue($identifier, $this->updated_at ? $this->updated_at->format("Y-m-d H:i:s") : null, PDO::PARAM_STR); - break; - } - } - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute INSERT statement [%s]', $sql), 0, $e); - } - - try { - $pk = $con->lastInsertId(); - } catch (Exception $e) { - throw new PropelException('Unable to get autoincrement id.', 0, $e); - } - $this->setId($pk); - - $this->setNew(false); - } - - /** - * Update the row in the database. - * - * @param ConnectionInterface $con - * - * @return Integer Number of updated rows - * @see doSave() - */ - protected function doUpdate(ConnectionInterface $con) - { - $selectCriteria = $this->buildPkeyCriteria(); - $valuesCriteria = $this->buildCriteria(); - - return $selectCriteria->doUpdate($valuesCriteria, $con); - } - - /** - * Retrieves a field from the object by name passed in as a string. - * - * @param string $name name - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return mixed Value of field. - */ - public function getByName($name, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - $field = $this->getByPosition($pos); - - return $field; - } - - /** - * Retrieves a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @return mixed Value of field at $pos - */ - public function getByPosition($pos) - { - switch ($pos) { - case 0: - return $this->getId(); - break; - case 1: - return $this->getFile(); - break; - case 2: - return $this->getPosition(); - break; - case 3: - return $this->getUrl(); - break; - case 4: - return $this->getCreatedAt(); - break; - case 5: - return $this->getUpdatedAt(); - break; - default: - return null; - break; - } // switch() - } - - /** - * Exports the object as an array. - * - * You can specify the key type of the array by passing one of the class - * type constants. - * - * @param string $keyType (optional) One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to TRUE. - * @param array $alreadyDumpedObjects List of objects to skip to avoid recursion - * @param boolean $includeForeignObjects (optional) Whether to include hydrated related objects. Default to FALSE. - * - * @return array an associative array containing the field names (as keys) and field values - */ - public function toArray($keyType = TableMap::TYPE_PHPNAME, $includeLazyLoadColumns = true, $alreadyDumpedObjects = array(), $includeForeignObjects = false) - { - if (isset($alreadyDumpedObjects['Carousel'][$this->getPrimaryKey()])) { - return '*RECURSION*'; - } - $alreadyDumpedObjects['Carousel'][$this->getPrimaryKey()] = true; - $keys = CarouselTableMap::getFieldNames($keyType); - $result = array( - $keys[0] => $this->getId(), - $keys[1] => $this->getFile(), - $keys[2] => $this->getPosition(), - $keys[3] => $this->getUrl(), - $keys[4] => $this->getCreatedAt(), - $keys[5] => $this->getUpdatedAt(), - ); - $virtualColumns = $this->virtualColumns; - foreach ($virtualColumns as $key => $virtualColumn) { - $result[$key] = $virtualColumn; - } - - if ($includeForeignObjects) { - if (null !== $this->collCarouselI18ns) { - $result['CarouselI18ns'] = $this->collCarouselI18ns->toArray(null, true, $keyType, $includeLazyLoadColumns, $alreadyDumpedObjects); - } - } - - return $result; - } - - /** - * Sets a field from the object by name passed in as a string. - * - * @param string $name - * @param mixed $value field value - * @param string $type The type of fieldname the $name is of: - * one of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * Defaults to TableMap::TYPE_PHPNAME. - * @return void - */ - public function setByName($name, $value, $type = TableMap::TYPE_PHPNAME) - { - $pos = CarouselTableMap::translateFieldName($name, $type, TableMap::TYPE_NUM); - - return $this->setByPosition($pos, $value); - } - - /** - * Sets a field from the object by Position as specified in the xml schema. - * Zero-based. - * - * @param int $pos position in xml schema - * @param mixed $value field value - * @return void - */ - public function setByPosition($pos, $value) - { - switch ($pos) { - case 0: - $this->setId($value); - break; - case 1: - $this->setFile($value); - break; - case 2: - $this->setPosition($value); - break; - case 3: - $this->setUrl($value); - break; - case 4: - $this->setCreatedAt($value); - break; - case 5: - $this->setUpdatedAt($value); - break; - } // switch() - } - - /** - * Populates the object using an array. - * - * This is particularly useful when populating an object from one of the - * request arrays (e.g. $_POST). This method goes through the column - * names, checking to see whether a matching key exists in populated - * array. If so the setByName() method is called for that column. - * - * You can specify the key type of the array by additionally passing one - * of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME, - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * The default key type is the column's TableMap::TYPE_PHPNAME. - * - * @param array $arr An array to populate the object from. - * @param string $keyType The type of keys the array uses. - * @return void - */ - public function fromArray($arr, $keyType = TableMap::TYPE_PHPNAME) - { - $keys = CarouselTableMap::getFieldNames($keyType); - - if (array_key_exists($keys[0], $arr)) $this->setId($arr[$keys[0]]); - if (array_key_exists($keys[1], $arr)) $this->setFile($arr[$keys[1]]); - if (array_key_exists($keys[2], $arr)) $this->setPosition($arr[$keys[2]]); - if (array_key_exists($keys[3], $arr)) $this->setUrl($arr[$keys[3]]); - if (array_key_exists($keys[4], $arr)) $this->setCreatedAt($arr[$keys[4]]); - if (array_key_exists($keys[5], $arr)) $this->setUpdatedAt($arr[$keys[5]]); - } - - /** - * Build a Criteria object containing the values of all modified columns in this object. - * - * @return Criteria The Criteria object containing all modified values. - */ - public function buildCriteria() - { - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - - if ($this->isColumnModified(CarouselTableMap::ID)) $criteria->add(CarouselTableMap::ID, $this->id); - if ($this->isColumnModified(CarouselTableMap::FILE)) $criteria->add(CarouselTableMap::FILE, $this->file); - if ($this->isColumnModified(CarouselTableMap::POSITION)) $criteria->add(CarouselTableMap::POSITION, $this->position); - if ($this->isColumnModified(CarouselTableMap::URL)) $criteria->add(CarouselTableMap::URL, $this->url); - if ($this->isColumnModified(CarouselTableMap::CREATED_AT)) $criteria->add(CarouselTableMap::CREATED_AT, $this->created_at); - if ($this->isColumnModified(CarouselTableMap::UPDATED_AT)) $criteria->add(CarouselTableMap::UPDATED_AT, $this->updated_at); - - return $criteria; - } - - /** - * Builds a Criteria object containing the primary key for this object. - * - * Unlike buildCriteria() this method includes the primary key values regardless - * of whether or not they have been modified. - * - * @return Criteria The Criteria object containing value(s) for primary key(s). - */ - public function buildPkeyCriteria() - { - $criteria = new Criteria(CarouselTableMap::DATABASE_NAME); - $criteria->add(CarouselTableMap::ID, $this->id); - - return $criteria; - } - - /** - * Returns the primary key for this object (row). - * @return int - */ - public function getPrimaryKey() - { - return $this->getId(); - } - - /** - * Generic method to set the primary key (id column). - * - * @param int $key Primary key. - * @return void - */ - public function setPrimaryKey($key) - { - $this->setId($key); - } - - /** - * Returns true if the primary key for this object is null. - * @return boolean - */ - public function isPrimaryKeyNull() - { - - return null === $this->getId(); - } - - /** - * Sets contents of passed object to values from current object. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param object $copyObj An object of \Carousel\Model\Carousel (or compatible) type. - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @param boolean $makeNew Whether to reset autoincrement PKs and make the object new. - * @throws PropelException - */ - public function copyInto($copyObj, $deepCopy = false, $makeNew = true) - { - $copyObj->setFile($this->getFile()); - $copyObj->setPosition($this->getPosition()); - $copyObj->setUrl($this->getUrl()); - $copyObj->setCreatedAt($this->getCreatedAt()); - $copyObj->setUpdatedAt($this->getUpdatedAt()); - - if ($deepCopy) { - // important: temporarily setNew(false) because this affects the behavior of - // the getter/setter methods for fkey referrer objects. - $copyObj->setNew(false); - - foreach ($this->getCarouselI18ns() as $relObj) { - if ($relObj !== $this) { // ensure that we don't try to copy a reference to ourselves - $copyObj->addCarouselI18n($relObj->copy($deepCopy)); - } - } - - } // if ($deepCopy) - - if ($makeNew) { - $copyObj->setNew(true); - $copyObj->setId(NULL); // this is a auto-increment column, so set to default value - } - } - - /** - * Makes a copy of this object that will be inserted as a new row in table when saved. - * It creates a new object filling in the simple attributes, but skipping any primary - * keys that are defined for the table. - * - * If desired, this method can also make copies of all associated (fkey referrers) - * objects. - * - * @param boolean $deepCopy Whether to also copy all rows that refer (by fkey) to the current row. - * @return \Carousel\Model\Carousel Clone of current object. - * @throws PropelException - */ - public function copy($deepCopy = false) - { - // we use get_class(), because this might be a subclass - $clazz = get_class($this); - $copyObj = new $clazz(); - $this->copyInto($copyObj, $deepCopy); - - return $copyObj; - } - - - /** - * Initializes a collection based on the name of a relation. - * Avoids crafting an 'init[$relationName]s' method name - * that wouldn't work when StandardEnglishPluralizer is used. - * - * @param string $relationName The name of the relation to initialize - * @return void - */ - public function initRelation($relationName) - { - if ('CarouselI18n' == $relationName) { - return $this->initCarouselI18ns(); - } - } - - /** - * Clears out the collCarouselI18ns collection - * - * This does not modify the database; however, it will remove any associated objects, causing - * them to be refetched by subsequent calls to accessor method. - * - * @return void - * @see addCarouselI18ns() - */ - public function clearCarouselI18ns() - { - $this->collCarouselI18ns = null; // important to set this to NULL since that means it is uninitialized - } - - /** - * Reset is the collCarouselI18ns collection loaded partially. - */ - public function resetPartialCarouselI18ns($v = true) - { - $this->collCarouselI18nsPartial = $v; - } - - /** - * Initializes the collCarouselI18ns collection. - * - * By default this just sets the collCarouselI18ns collection to an empty array (like clearcollCarouselI18ns()); - * however, you may wish to override this method in your stub class to provide setting appropriate - * to your application -- for example, setting the initial array to the values stored in database. - * - * @param boolean $overrideExisting If set to true, the method call initializes - * the collection even if it is not empty - * - * @return void - */ - public function initCarouselI18ns($overrideExisting = true) - { - if (null !== $this->collCarouselI18ns && !$overrideExisting) { - return; - } - $this->collCarouselI18ns = new ObjectCollection(); - $this->collCarouselI18ns->setModel('\Carousel\Model\CarouselI18n'); - } - - /** - * Gets an array of ChildCarouselI18n objects which contain a foreign key that references this object. - * - * If the $criteria is not null, it is used to always fetch the results from the database. - * Otherwise the results are fetched from the database the first time, then cached. - * Next time the same method is called without $criteria, the cached collection is returned. - * If this ChildCarousel is new, it will return - * an empty collection or the current collection; the criteria is ignored on a new object. - * - * @param Criteria $criteria optional Criteria object to narrow the query - * @param ConnectionInterface $con optional connection object - * @return Collection|ChildCarouselI18n[] List of ChildCarouselI18n objects - * @throws PropelException - */ - public function getCarouselI18ns($criteria = null, ConnectionInterface $con = null) - { - $partial = $this->collCarouselI18nsPartial && !$this->isNew(); - if (null === $this->collCarouselI18ns || null !== $criteria || $partial) { - if ($this->isNew() && null === $this->collCarouselI18ns) { - // return empty collection - $this->initCarouselI18ns(); - } else { - $collCarouselI18ns = ChildCarouselI18nQuery::create(null, $criteria) - ->filterByCarousel($this) - ->find($con); - - if (null !== $criteria) { - if (false !== $this->collCarouselI18nsPartial && count($collCarouselI18ns)) { - $this->initCarouselI18ns(false); - - foreach ($collCarouselI18ns as $obj) { - if (false == $this->collCarouselI18ns->contains($obj)) { - $this->collCarouselI18ns->append($obj); - } - } - - $this->collCarouselI18nsPartial = true; - } - - reset($collCarouselI18ns); - - return $collCarouselI18ns; - } - - if ($partial && $this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $obj) { - if ($obj->isNew()) { - $collCarouselI18ns[] = $obj; - } - } - } - - $this->collCarouselI18ns = $collCarouselI18ns; - $this->collCarouselI18nsPartial = false; - } - } - - return $this->collCarouselI18ns; - } - - /** - * Sets a collection of CarouselI18n objects related by a one-to-many relationship - * to the current object. - * It will also schedule objects for deletion based on a diff between old objects (aka persisted) - * and new objects from the given Propel collection. - * - * @param Collection $carouselI18ns A Propel collection. - * @param ConnectionInterface $con Optional connection object - * @return ChildCarousel The current object (for fluent API support) - */ - public function setCarouselI18ns(Collection $carouselI18ns, ConnectionInterface $con = null) - { - $carouselI18nsToDelete = $this->getCarouselI18ns(new Criteria(), $con)->diff($carouselI18ns); - - - //since at least one column in the foreign key is at the same time a PK - //we can not just set a PK to NULL in the lines below. We have to store - //a backup of all values, so we are able to manipulate these items based on the onDelete value later. - $this->carouselI18nsScheduledForDeletion = clone $carouselI18nsToDelete; - - foreach ($carouselI18nsToDelete as $carouselI18nRemoved) { - $carouselI18nRemoved->setCarousel(null); - } - - $this->collCarouselI18ns = null; - foreach ($carouselI18ns as $carouselI18n) { - $this->addCarouselI18n($carouselI18n); - } - - $this->collCarouselI18ns = $carouselI18ns; - $this->collCarouselI18nsPartial = false; - - return $this; - } - - /** - * Returns the number of related CarouselI18n objects. - * - * @param Criteria $criteria - * @param boolean $distinct - * @param ConnectionInterface $con - * @return int Count of related CarouselI18n objects. - * @throws PropelException - */ - public function countCarouselI18ns(Criteria $criteria = null, $distinct = false, ConnectionInterface $con = null) - { - $partial = $this->collCarouselI18nsPartial && !$this->isNew(); - if (null === $this->collCarouselI18ns || null !== $criteria || $partial) { - if ($this->isNew() && null === $this->collCarouselI18ns) { - return 0; - } - - if ($partial && !$criteria) { - return count($this->getCarouselI18ns()); - } - - $query = ChildCarouselI18nQuery::create(null, $criteria); - if ($distinct) { - $query->distinct(); - } - - return $query - ->filterByCarousel($this) - ->count($con); - } - - return count($this->collCarouselI18ns); - } - - /** - * Method called to associate a ChildCarouselI18n object to this object - * through the ChildCarouselI18n foreign key attribute. - * - * @param ChildCarouselI18n $l ChildCarouselI18n - * @return \Carousel\Model\Carousel The current object (for fluent API support) - */ - public function addCarouselI18n(ChildCarouselI18n $l) - { - if ($l && $locale = $l->getLocale()) { - $this->setLocale($locale); - $this->currentTranslations[$locale] = $l; - } - if ($this->collCarouselI18ns === null) { - $this->initCarouselI18ns(); - $this->collCarouselI18nsPartial = true; - } - - if (!in_array($l, $this->collCarouselI18ns->getArrayCopy(), true)) { // only add it if the **same** object is not already associated - $this->doAddCarouselI18n($l); - } - - return $this; - } - - /** - * @param CarouselI18n $carouselI18n The carouselI18n object to add. - */ - protected function doAddCarouselI18n($carouselI18n) - { - $this->collCarouselI18ns[]= $carouselI18n; - $carouselI18n->setCarousel($this); - } - - /** - * @param CarouselI18n $carouselI18n The carouselI18n object to remove. - * @return ChildCarousel The current object (for fluent API support) - */ - public function removeCarouselI18n($carouselI18n) - { - if ($this->getCarouselI18ns()->contains($carouselI18n)) { - $this->collCarouselI18ns->remove($this->collCarouselI18ns->search($carouselI18n)); - if (null === $this->carouselI18nsScheduledForDeletion) { - $this->carouselI18nsScheduledForDeletion = clone $this->collCarouselI18ns; - $this->carouselI18nsScheduledForDeletion->clear(); - } - $this->carouselI18nsScheduledForDeletion[]= clone $carouselI18n; - $carouselI18n->setCarousel(null); - } - - return $this; - } - - /** - * Clears the current object and sets all attributes to their default values - */ - public function clear() - { - $this->id = null; - $this->file = null; - $this->position = null; - $this->url = null; - $this->created_at = null; - $this->updated_at = null; - $this->alreadyInSave = false; - $this->clearAllReferences(); - $this->resetModified(); - $this->setNew(true); - $this->setDeleted(false); - } - - /** - * Resets all references to other model objects or collections of model objects. - * - * This method is a user-space workaround for PHP's inability to garbage collect - * objects with circular references (even in PHP 5.3). This is currently necessary - * when using Propel in certain daemon or large-volume/high-memory operations. - * - * @param boolean $deep Whether to also clear the references on all referrer objects. - */ - public function clearAllReferences($deep = false) - { - if ($deep) { - if ($this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $o) { - $o->clearAllReferences($deep); - } - } - } // if ($deep) - - // i18n behavior - $this->currentLocale = 'en_US'; - $this->currentTranslations = null; - - $this->collCarouselI18ns = null; - } - - /** - * Return the string representation of this object - * - * @return string - */ - public function __toString() - { - return (string) $this->exportTo(CarouselTableMap::DEFAULT_STRING_FORMAT); - } - - // timestampable behavior - - /** - * Mark the current object so that the update date doesn't get updated during next save - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function keepUpdateDateUnchanged() - { - $this->modifiedColumns[CarouselTableMap::UPDATED_AT] = true; - - return $this; - } - - // i18n behavior - - /** - * Sets the locale for translations - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function setLocale($locale = 'en_US') - { - $this->currentLocale = $locale; - - return $this; - } - - /** - * Gets the locale for translations - * - * @return string $locale Locale to use for the translation, e.g. 'fr_FR' - */ - public function getLocale() - { - return $this->currentLocale; - } - - /** - * Returns the current translation for a given locale - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n */ - public function getTranslation($locale = 'en_US', ConnectionInterface $con = null) - { - if (!isset($this->currentTranslations[$locale])) { - if (null !== $this->collCarouselI18ns) { - foreach ($this->collCarouselI18ns as $translation) { - if ($translation->getLocale() == $locale) { - $this->currentTranslations[$locale] = $translation; - - return $translation; - } - } - } - if ($this->isNew()) { - $translation = new ChildCarouselI18n(); - $translation->setLocale($locale); - } else { - $translation = ChildCarouselI18nQuery::create() - ->filterByPrimaryKey(array($this->getPrimaryKey(), $locale)) - ->findOneOrCreate($con); - $this->currentTranslations[$locale] = $translation; - } - $this->addCarouselI18n($translation); - } - - return $this->currentTranslations[$locale]; - } - - /** - * Remove the translation for a given locale - * - * @param string $locale Locale to use for the translation, e.g. 'fr_FR' - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarousel The current object (for fluent API support) - */ - public function removeTranslation($locale = 'en_US', ConnectionInterface $con = null) - { - if (!$this->isNew()) { - ChildCarouselI18nQuery::create() - ->filterByPrimaryKey(array($this->getPrimaryKey(), $locale)) - ->delete($con); - } - if (isset($this->currentTranslations[$locale])) { - unset($this->currentTranslations[$locale]); - } - foreach ($this->collCarouselI18ns as $key => $translation) { - if ($translation->getLocale() == $locale) { - unset($this->collCarouselI18ns[$key]); - break; - } - } - - return $this; - } - - /** - * Returns the current translation - * - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n */ - public function getCurrentTranslation(ConnectionInterface $con = null) - { - return $this->getTranslation($this->getLocale(), $con); - } - - - /** - * Get the [alt] column value. - * - * @return string - */ - public function getAlt() - { - return $this->getCurrentTranslation()->getAlt(); - } - - - /** - * Set the value of [alt] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setAlt($v) - { $this->getCurrentTranslation()->setAlt($v); - - return $this; - } - - - /** - * Get the [title] column value. - * - * @return string - */ - public function getTitle() - { - return $this->getCurrentTranslation()->getTitle(); - } - - - /** - * Set the value of [title] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setTitle($v) - { $this->getCurrentTranslation()->setTitle($v); - - return $this; - } - - - /** - * Get the [description] column value. - * - * @return string - */ - public function getDescription() - { - return $this->getCurrentTranslation()->getDescription(); - } - - - /** - * Set the value of [description] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setDescription($v) - { $this->getCurrentTranslation()->setDescription($v); - - return $this; - } - - - /** - * Get the [chapo] column value. - * - * @return string - */ - public function getChapo() - { - return $this->getCurrentTranslation()->getChapo(); - } - - - /** - * Set the value of [chapo] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setChapo($v) - { $this->getCurrentTranslation()->setChapo($v); - - return $this; - } - - - /** - * Get the [postscriptum] column value. - * - * @return string - */ - public function getPostscriptum() - { - return $this->getCurrentTranslation()->getPostscriptum(); - } - - - /** - * Set the value of [postscriptum] column. - * - * @param string $v new value - * @return \Carousel\Model\CarouselI18n The current object (for fluent API support) - */ - public function setPostscriptum($v) - { $this->getCurrentTranslation()->setPostscriptum($v); - - return $this; - } - - /** - * Code to be run before persisting the object - * @param ConnectionInterface $con - * @return boolean - */ - public function preSave(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after persisting the object - * @param ConnectionInterface $con - */ - public function postSave(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before inserting to database - * @param ConnectionInterface $con - * @return boolean - */ - public function preInsert(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after inserting to database - * @param ConnectionInterface $con - */ - public function postInsert(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before updating the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preUpdate(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after updating the object in database - * @param ConnectionInterface $con - */ - public function postUpdate(ConnectionInterface $con = null) - { - - } - - /** - * Code to be run before deleting the object in database - * @param ConnectionInterface $con - * @return boolean - */ - public function preDelete(ConnectionInterface $con = null) - { - return true; - } - - /** - * Code to be run after deleting the object in database - * @param ConnectionInterface $con - */ - public function postDelete(ConnectionInterface $con = null) - { - - } - - - /** - * Derived method to catches calls to undefined methods. - * - * Provides magic import/export method support (fromXML()/toXML(), fromYAML()/toYAML(), etc.). - * Allows to define default __call() behavior if you overwrite __call() - * - * @param string $name - * @param mixed $params - * - * @return array|string - */ - public function __call($name, $params) - { - if (0 === strpos($name, 'get')) { - $virtualColumn = substr($name, 3); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - - $virtualColumn = lcfirst($virtualColumn); - if ($this->hasVirtualColumn($virtualColumn)) { - return $this->getVirtualColumn($virtualColumn); - } - } - - if (0 === strpos($name, 'from')) { - $format = substr($name, 4); - - return $this->importFrom($format, reset($params)); - } - - if (0 === strpos($name, 'to')) { - $format = substr($name, 2); - $includeLazyLoadColumns = isset($params[0]) ? $params[0] : true; - - return $this->exportTo($format, $includeLazyLoadColumns); - } - - throw new BadMethodCallException(sprintf('Call to undefined method: %s.', $name)); - } - -} diff --git a/local/modules/modules/Carousel/Model/Base/CarouselI18nQuery.php b/local/modules/modules/Carousel/Model/Base/CarouselI18nQuery.php deleted file mode 100644 index 51711281..00000000 --- a/local/modules/modules/Carousel/Model/Base/CarouselI18nQuery.php +++ /dev/null @@ -1,640 +0,0 @@ -setModelAlias($modelAlias); - } - if ($criteria instanceof Criteria) { - $query->mergeWith($criteria); - } - - return $query; - } - - /** - * Find object by primary key. - * Propel uses the instance pool to skip the database if the object exists. - * Go fast if the query is untouched. - * - * - * $obj = $c->findPk(array(12, 34), $con); - * - * - * @param array[$id, $locale] $key Primary key to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarouselI18n|array|mixed the result, formatted by the current formatter - */ - public function findPk($key, $con = null) - { - if ($key === null) { - return null; - } - if ((null !== ($obj = CarouselI18nTableMap::getInstanceFromPool(serialize(array((string) $key[0], (string) $key[1]))))) && !$this->formatter) { - // the object is already in the instance pool - return $obj; - } - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselI18nTableMap::DATABASE_NAME); - } - $this->basePreSelect($con); - if ($this->formatter || $this->modelAlias || $this->with || $this->select - || $this->selectColumns || $this->asColumns || $this->selectModifiers - || $this->map || $this->having || $this->joins) { - return $this->findPkComplex($key, $con); - } else { - return $this->findPkSimple($key, $con); - } - } - - /** - * Find object by primary key using raw SQL to go fast. - * Bypass doSelect() and the object formatter by using generated code. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarouselI18n A model object, or null if the key is not found - */ - protected function findPkSimple($key, $con) - { - $sql = 'SELECT ID, LOCALE, ALT, TITLE, DESCRIPTION, CHAPO, POSTSCRIPTUM FROM carousel_i18n WHERE ID = :p0 AND LOCALE = :p1'; - try { - $stmt = $con->prepare($sql); - $stmt->bindValue(':p0', $key[0], PDO::PARAM_INT); - $stmt->bindValue(':p1', $key[1], PDO::PARAM_STR); - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); - } - $obj = null; - if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { - $obj = new ChildCarouselI18n(); - $obj->hydrate($row); - CarouselI18nTableMap::addInstanceToPool($obj, serialize(array((string) $key[0], (string) $key[1]))); - } - $stmt->closeCursor(); - - return $obj; - } - - /** - * Find object by primary key. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarouselI18n|array|mixed the result, formatted by the current formatter - */ - protected function findPkComplex($key, $con) - { - // As the query uses a PK condition, no limit(1) is necessary. - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKey($key) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); - } - - /** - * Find objects by primary key - * - * $objs = $c->findPks(array(array(12, 56), array(832, 123), array(123, 456)), $con); - * - * @param array $keys Primary keys to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter - */ - public function findPks($keys, $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); - } - $this->basePreSelect($con); - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKeys($keys) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->format($dataFetcher); - } - - /** - * Filter the query by primary key - * - * @param mixed $key Primary key to use for the query - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPrimaryKey($key) - { - $this->addUsingAlias(CarouselI18nTableMap::ID, $key[0], Criteria::EQUAL); - $this->addUsingAlias(CarouselI18nTableMap::LOCALE, $key[1], Criteria::EQUAL); - - return $this; - } - - /** - * Filter the query by a list of primary keys - * - * @param array $keys The list of primary key to use for the query - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPrimaryKeys($keys) - { - if (empty($keys)) { - return $this->add(null, '1<>1', Criteria::CUSTOM); - } - foreach ($keys as $key) { - $cton0 = $this->getNewCriterion(CarouselI18nTableMap::ID, $key[0], Criteria::EQUAL); - $cton1 = $this->getNewCriterion(CarouselI18nTableMap::LOCALE, $key[1], Criteria::EQUAL); - $cton0->addAnd($cton1); - $this->addOr($cton0); - } - - return $this; - } - - /** - * Filter the query on the id column - * - * Example usage: - * - * $query->filterById(1234); // WHERE id = 1234 - * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) - * $query->filterById(array('min' => 12)); // WHERE id > 12 - * - * - * @see filterByCarousel() - * - * @param mixed $id The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterById($id = null, $comparison = null) - { - if (is_array($id)) { - $useMinMax = false; - if (isset($id['min'])) { - $this->addUsingAlias(CarouselI18nTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($id['max'])) { - $this->addUsingAlias(CarouselI18nTableMap::ID, $id['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::ID, $id, $comparison); - } - - /** - * Filter the query on the locale column - * - * Example usage: - * - * $query->filterByLocale('fooValue'); // WHERE locale = 'fooValue' - * $query->filterByLocale('%fooValue%'); // WHERE locale LIKE '%fooValue%' - * - * - * @param string $locale The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByLocale($locale = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($locale)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $locale)) { - $locale = str_replace('*', '%', $locale); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::LOCALE, $locale, $comparison); - } - - /** - * Filter the query on the alt column - * - * Example usage: - * - * $query->filterByAlt('fooValue'); // WHERE alt = 'fooValue' - * $query->filterByAlt('%fooValue%'); // WHERE alt LIKE '%fooValue%' - * - * - * @param string $alt The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByAlt($alt = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($alt)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $alt)) { - $alt = str_replace('*', '%', $alt); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::ALT, $alt, $comparison); - } - - /** - * Filter the query on the title column - * - * Example usage: - * - * $query->filterByTitle('fooValue'); // WHERE title = 'fooValue' - * $query->filterByTitle('%fooValue%'); // WHERE title LIKE '%fooValue%' - * - * - * @param string $title The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByTitle($title = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($title)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $title)) { - $title = str_replace('*', '%', $title); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::TITLE, $title, $comparison); - } - - /** - * Filter the query on the description column - * - * Example usage: - * - * $query->filterByDescription('fooValue'); // WHERE description = 'fooValue' - * $query->filterByDescription('%fooValue%'); // WHERE description LIKE '%fooValue%' - * - * - * @param string $description The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByDescription($description = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($description)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $description)) { - $description = str_replace('*', '%', $description); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::DESCRIPTION, $description, $comparison); - } - - /** - * Filter the query on the chapo column - * - * Example usage: - * - * $query->filterByChapo('fooValue'); // WHERE chapo = 'fooValue' - * $query->filterByChapo('%fooValue%'); // WHERE chapo LIKE '%fooValue%' - * - * - * @param string $chapo The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByChapo($chapo = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($chapo)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $chapo)) { - $chapo = str_replace('*', '%', $chapo); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::CHAPO, $chapo, $comparison); - } - - /** - * Filter the query on the postscriptum column - * - * Example usage: - * - * $query->filterByPostscriptum('fooValue'); // WHERE postscriptum = 'fooValue' - * $query->filterByPostscriptum('%fooValue%'); // WHERE postscriptum LIKE '%fooValue%' - * - * - * @param string $postscriptum The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByPostscriptum($postscriptum = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($postscriptum)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $postscriptum)) { - $postscriptum = str_replace('*', '%', $postscriptum); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselI18nTableMap::POSTSCRIPTUM, $postscriptum, $comparison); - } - - /** - * Filter the query by a related \Carousel\Model\Carousel object - * - * @param \Carousel\Model\Carousel|ObjectCollection $carousel The related object(s) to use as filter - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function filterByCarousel($carousel, $comparison = null) - { - if ($carousel instanceof \Carousel\Model\Carousel) { - return $this - ->addUsingAlias(CarouselI18nTableMap::ID, $carousel->getId(), $comparison); - } elseif ($carousel instanceof ObjectCollection) { - if (null === $comparison) { - $comparison = Criteria::IN; - } - - return $this - ->addUsingAlias(CarouselI18nTableMap::ID, $carousel->toKeyValue('PrimaryKey', 'Id'), $comparison); - } else { - throw new PropelException('filterByCarousel() only accepts arguments of type \Carousel\Model\Carousel or Collection'); - } - } - - /** - * Adds a JOIN clause to the query using the Carousel relation - * - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function joinCarousel($relationAlias = null, $joinType = 'LEFT JOIN') - { - $tableMap = $this->getTableMap(); - $relationMap = $tableMap->getRelation('Carousel'); - - // create a ModelJoin object for this join - $join = new ModelJoin(); - $join->setJoinType($joinType); - $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); - if ($previousJoin = $this->getPreviousJoin()) { - $join->setPreviousJoin($previousJoin); - } - - // add the ModelJoin to the current object - if ($relationAlias) { - $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); - $this->addJoinObject($join, $relationAlias); - } else { - $this->addJoinObject($join, 'Carousel'); - } - - return $this; - } - - /** - * Use the Carousel relation Carousel object - * - * @see useQuery() - * - * @param string $relationAlias optional alias for the relation, - * to be used as main alias in the secondary query - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return \Carousel\Model\CarouselQuery A secondary query class using the current class as primary query - */ - public function useCarouselQuery($relationAlias = null, $joinType = 'LEFT JOIN') - { - return $this - ->joinCarousel($relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'Carousel', '\Carousel\Model\CarouselQuery'); - } - - /** - * Exclude object from result - * - * @param ChildCarouselI18n $carouselI18n Object to remove from the list of results - * - * @return ChildCarouselI18nQuery The current query, for fluid interface - */ - public function prune($carouselI18n = null) - { - if ($carouselI18n) { - $this->addCond('pruneCond0', $this->getAliasedColName(CarouselI18nTableMap::ID), $carouselI18n->getId(), Criteria::NOT_EQUAL); - $this->addCond('pruneCond1', $this->getAliasedColName(CarouselI18nTableMap::LOCALE), $carouselI18n->getLocale(), Criteria::NOT_EQUAL); - $this->combine(array('pruneCond0', 'pruneCond1'), Criteria::LOGICAL_OR); - } - - return $this; - } - - /** - * Deletes all rows from the carousel_i18n table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public function doDeleteAll(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - $affectedRows = 0; // initialize var to track total num of affected rows - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - $affectedRows += parent::doDeleteAll($con); - // Because this db requires some delete cascade/set null emulation, we have to - // clear the cached instance *after* the emulation has happened (since - // instances get re-added by the select statement contained therein). - CarouselI18nTableMap::clearInstancePool(); - CarouselI18nTableMap::clearRelatedInstancePool(); - - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $affectedRows; - } - - /** - * Performs a DELETE on the database, given a ChildCarouselI18n or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or ChildCarouselI18n object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public function delete(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - $criteria = $this; - - // Set the correct dbName - $criteria->setDbName(CarouselI18nTableMap::DATABASE_NAME); - - $affectedRows = 0; // initialize var to track total num of affected rows - - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - - - CarouselI18nTableMap::removeInstanceFromPool($criteria); - - $affectedRows += ModelCriteria::delete($con); - CarouselI18nTableMap::clearRelatedInstancePool(); - $con->commit(); - - return $affectedRows; - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - } - -} // CarouselI18nQuery diff --git a/local/modules/modules/Carousel/Model/Base/CarouselQuery.php b/local/modules/modules/Carousel/Model/Base/CarouselQuery.php deleted file mode 100644 index b9387e00..00000000 --- a/local/modules/modules/Carousel/Model/Base/CarouselQuery.php +++ /dev/null @@ -1,753 +0,0 @@ -setModelAlias($modelAlias); - } - if ($criteria instanceof Criteria) { - $query->mergeWith($criteria); - } - - return $query; - } - - /** - * Find object by primary key. - * Propel uses the instance pool to skip the database if the object exists. - * Go fast if the query is untouched. - * - * - * $obj = $c->findPk(12, $con); - * - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ChildCarousel|array|mixed the result, formatted by the current formatter - */ - public function findPk($key, $con = null) - { - if ($key === null) { - return null; - } - if ((null !== ($obj = CarouselTableMap::getInstanceFromPool((string) $key))) && !$this->formatter) { - // the object is already in the instance pool - return $obj; - } - if ($con === null) { - $con = Propel::getServiceContainer()->getReadConnection(CarouselTableMap::DATABASE_NAME); - } - $this->basePreSelect($con); - if ($this->formatter || $this->modelAlias || $this->with || $this->select - || $this->selectColumns || $this->asColumns || $this->selectModifiers - || $this->map || $this->having || $this->joins) { - return $this->findPkComplex($key, $con); - } else { - return $this->findPkSimple($key, $con); - } - } - - /** - * Find object by primary key using raw SQL to go fast. - * Bypass doSelect() and the object formatter by using generated code. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarousel A model object, or null if the key is not found - */ - protected function findPkSimple($key, $con) - { - $sql = 'SELECT ID, FILE, POSITION, URL, CREATED_AT, UPDATED_AT FROM carousel WHERE ID = :p0'; - try { - $stmt = $con->prepare($sql); - $stmt->bindValue(':p0', $key, PDO::PARAM_INT); - $stmt->execute(); - } catch (Exception $e) { - Propel::log($e->getMessage(), Propel::LOG_ERR); - throw new PropelException(sprintf('Unable to execute SELECT statement [%s]', $sql), 0, $e); - } - $obj = null; - if ($row = $stmt->fetch(\PDO::FETCH_NUM)) { - $obj = new ChildCarousel(); - $obj->hydrate($row); - CarouselTableMap::addInstanceToPool($obj, (string) $key); - } - $stmt->closeCursor(); - - return $obj; - } - - /** - * Find object by primary key. - * - * @param mixed $key Primary key to use for the query - * @param ConnectionInterface $con A connection object - * - * @return ChildCarousel|array|mixed the result, formatted by the current formatter - */ - protected function findPkComplex($key, $con) - { - // As the query uses a PK condition, no limit(1) is necessary. - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKey($key) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->formatOne($dataFetcher); - } - - /** - * Find objects by primary key - * - * $objs = $c->findPks(array(12, 56, 832), $con); - * - * @param array $keys Primary keys to use for the query - * @param ConnectionInterface $con an optional connection object - * - * @return ObjectCollection|array|mixed the list of results, formatted by the current formatter - */ - public function findPks($keys, $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getReadConnection($this->getDbName()); - } - $this->basePreSelect($con); - $criteria = $this->isKeepQuery() ? clone $this : $this; - $dataFetcher = $criteria - ->filterByPrimaryKeys($keys) - ->doSelect($con); - - return $criteria->getFormatter()->init($criteria)->format($dataFetcher); - } - - /** - * Filter the query by primary key - * - * @param mixed $key Primary key to use for the query - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPrimaryKey($key) - { - - return $this->addUsingAlias(CarouselTableMap::ID, $key, Criteria::EQUAL); - } - - /** - * Filter the query by a list of primary keys - * - * @param array $keys The list of primary key to use for the query - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPrimaryKeys($keys) - { - - return $this->addUsingAlias(CarouselTableMap::ID, $keys, Criteria::IN); - } - - /** - * Filter the query on the id column - * - * Example usage: - * - * $query->filterById(1234); // WHERE id = 1234 - * $query->filterById(array(12, 34)); // WHERE id IN (12, 34) - * $query->filterById(array('min' => 12)); // WHERE id > 12 - * - * - * @param mixed $id The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterById($id = null, $comparison = null) - { - if (is_array($id)) { - $useMinMax = false; - if (isset($id['min'])) { - $this->addUsingAlias(CarouselTableMap::ID, $id['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($id['max'])) { - $this->addUsingAlias(CarouselTableMap::ID, $id['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::ID, $id, $comparison); - } - - /** - * Filter the query on the file column - * - * Example usage: - * - * $query->filterByFile('fooValue'); // WHERE file = 'fooValue' - * $query->filterByFile('%fooValue%'); // WHERE file LIKE '%fooValue%' - * - * - * @param string $file The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByFile($file = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($file)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $file)) { - $file = str_replace('*', '%', $file); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselTableMap::FILE, $file, $comparison); - } - - /** - * Filter the query on the position column - * - * Example usage: - * - * $query->filterByPosition(1234); // WHERE position = 1234 - * $query->filterByPosition(array(12, 34)); // WHERE position IN (12, 34) - * $query->filterByPosition(array('min' => 12)); // WHERE position > 12 - * - * - * @param mixed $position The value to use as filter. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByPosition($position = null, $comparison = null) - { - if (is_array($position)) { - $useMinMax = false; - if (isset($position['min'])) { - $this->addUsingAlias(CarouselTableMap::POSITION, $position['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($position['max'])) { - $this->addUsingAlias(CarouselTableMap::POSITION, $position['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::POSITION, $position, $comparison); - } - - /** - * Filter the query on the url column - * - * Example usage: - * - * $query->filterByUrl('fooValue'); // WHERE url = 'fooValue' - * $query->filterByUrl('%fooValue%'); // WHERE url LIKE '%fooValue%' - * - * - * @param string $url The value to use as filter. - * Accepts wildcards (* and % trigger a LIKE) - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByUrl($url = null, $comparison = null) - { - if (null === $comparison) { - if (is_array($url)) { - $comparison = Criteria::IN; - } elseif (preg_match('/[\%\*]/', $url)) { - $url = str_replace('*', '%', $url); - $comparison = Criteria::LIKE; - } - } - - return $this->addUsingAlias(CarouselTableMap::URL, $url, $comparison); - } - - /** - * Filter the query on the created_at column - * - * Example usage: - * - * $query->filterByCreatedAt('2011-03-14'); // WHERE created_at = '2011-03-14' - * $query->filterByCreatedAt('now'); // WHERE created_at = '2011-03-14' - * $query->filterByCreatedAt(array('max' => 'yesterday')); // WHERE created_at > '2011-03-13' - * - * - * @param mixed $createdAt The value to use as filter. - * Values can be integers (unix timestamps), DateTime objects, or strings. - * Empty strings are treated as NULL. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByCreatedAt($createdAt = null, $comparison = null) - { - if (is_array($createdAt)) { - $useMinMax = false; - if (isset($createdAt['min'])) { - $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($createdAt['max'])) { - $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::CREATED_AT, $createdAt, $comparison); - } - - /** - * Filter the query on the updated_at column - * - * Example usage: - * - * $query->filterByUpdatedAt('2011-03-14'); // WHERE updated_at = '2011-03-14' - * $query->filterByUpdatedAt('now'); // WHERE updated_at = '2011-03-14' - * $query->filterByUpdatedAt(array('max' => 'yesterday')); // WHERE updated_at > '2011-03-13' - * - * - * @param mixed $updatedAt The value to use as filter. - * Values can be integers (unix timestamps), DateTime objects, or strings. - * Empty strings are treated as NULL. - * Use scalar values for equality. - * Use array values for in_array() equivalent. - * Use associative array('min' => $minValue, 'max' => $maxValue) for intervals. - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByUpdatedAt($updatedAt = null, $comparison = null) - { - if (is_array($updatedAt)) { - $useMinMax = false; - if (isset($updatedAt['min'])) { - $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt['min'], Criteria::GREATER_EQUAL); - $useMinMax = true; - } - if (isset($updatedAt['max'])) { - $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt['max'], Criteria::LESS_EQUAL); - $useMinMax = true; - } - if ($useMinMax) { - return $this; - } - if (null === $comparison) { - $comparison = Criteria::IN; - } - } - - return $this->addUsingAlias(CarouselTableMap::UPDATED_AT, $updatedAt, $comparison); - } - - /** - * Filter the query by a related \Carousel\Model\CarouselI18n object - * - * @param \Carousel\Model\CarouselI18n|ObjectCollection $carouselI18n the related object to use as filter - * @param string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function filterByCarouselI18n($carouselI18n, $comparison = null) - { - if ($carouselI18n instanceof \Carousel\Model\CarouselI18n) { - return $this - ->addUsingAlias(CarouselTableMap::ID, $carouselI18n->getId(), $comparison); - } elseif ($carouselI18n instanceof ObjectCollection) { - return $this - ->useCarouselI18nQuery() - ->filterByPrimaryKeys($carouselI18n->getPrimaryKeys()) - ->endUse(); - } else { - throw new PropelException('filterByCarouselI18n() only accepts arguments of type \Carousel\Model\CarouselI18n or Collection'); - } - } - - /** - * Adds a JOIN clause to the query using the CarouselI18n relation - * - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinCarouselI18n($relationAlias = null, $joinType = 'LEFT JOIN') - { - $tableMap = $this->getTableMap(); - $relationMap = $tableMap->getRelation('CarouselI18n'); - - // create a ModelJoin object for this join - $join = new ModelJoin(); - $join->setJoinType($joinType); - $join->setRelationMap($relationMap, $this->useAliasInSQL ? $this->getModelAlias() : null, $relationAlias); - if ($previousJoin = $this->getPreviousJoin()) { - $join->setPreviousJoin($previousJoin); - } - - // add the ModelJoin to the current object - if ($relationAlias) { - $this->addAlias($relationAlias, $relationMap->getRightTable()->getName()); - $this->addJoinObject($join, $relationAlias); - } else { - $this->addJoinObject($join, 'CarouselI18n'); - } - - return $this; - } - - /** - * Use the CarouselI18n relation CarouselI18n object - * - * @see useQuery() - * - * @param string $relationAlias optional alias for the relation, - * to be used as main alias in the secondary query - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join' - * - * @return \Carousel\Model\CarouselI18nQuery A secondary query class using the current class as primary query - */ - public function useCarouselI18nQuery($relationAlias = null, $joinType = 'LEFT JOIN') - { - return $this - ->joinCarouselI18n($relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'CarouselI18n', '\Carousel\Model\CarouselI18nQuery'); - } - - /** - * Exclude object from result - * - * @param ChildCarousel $carousel Object to remove from the list of results - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function prune($carousel = null) - { - if ($carousel) { - $this->addUsingAlias(CarouselTableMap::ID, $carousel->getId(), Criteria::NOT_EQUAL); - } - - return $this; - } - - /** - * Deletes all rows from the carousel table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public function doDeleteAll(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - $affectedRows = 0; // initialize var to track total num of affected rows - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - $affectedRows += parent::doDeleteAll($con); - // Because this db requires some delete cascade/set null emulation, we have to - // clear the cached instance *after* the emulation has happened (since - // instances get re-added by the select statement contained therein). - CarouselTableMap::clearInstancePool(); - CarouselTableMap::clearRelatedInstancePool(); - - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $affectedRows; - } - - /** - * Performs a DELETE on the database, given a ChildCarousel or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or ChildCarousel object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public function delete(ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselTableMap::DATABASE_NAME); - } - - $criteria = $this; - - // Set the correct dbName - $criteria->setDbName(CarouselTableMap::DATABASE_NAME); - - $affectedRows = 0; // initialize var to track total num of affected rows - - try { - // use transaction because $criteria could contain info - // for more than one table or we could emulating ON DELETE CASCADE, etc. - $con->beginTransaction(); - - - CarouselTableMap::removeInstanceFromPool($criteria); - - $affectedRows += ModelCriteria::delete($con); - CarouselTableMap::clearRelatedInstancePool(); - $con->commit(); - - return $affectedRows; - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - } - - // timestampable behavior - - /** - * Filter by the latest updated - * - * @param int $nbDays Maximum age of the latest update in days - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function recentlyUpdated($nbDays = 7) - { - return $this->addUsingAlias(CarouselTableMap::UPDATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); - } - - /** - * Filter by the latest created - * - * @param int $nbDays Maximum age of in days - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function recentlyCreated($nbDays = 7) - { - return $this->addUsingAlias(CarouselTableMap::CREATED_AT, time() - $nbDays * 24 * 60 * 60, Criteria::GREATER_EQUAL); - } - - /** - * Order by update date desc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function lastUpdatedFirst() - { - return $this->addDescendingOrderByColumn(CarouselTableMap::UPDATED_AT); - } - - /** - * Order by update date asc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function firstUpdatedFirst() - { - return $this->addAscendingOrderByColumn(CarouselTableMap::UPDATED_AT); - } - - /** - * Order by create date desc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function lastCreatedFirst() - { - return $this->addDescendingOrderByColumn(CarouselTableMap::CREATED_AT); - } - - /** - * Order by create date asc - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function firstCreatedFirst() - { - return $this->addAscendingOrderByColumn(CarouselTableMap::CREATED_AT); - } - - // i18n behavior - - /** - * Adds a JOIN clause to the query using the i18n relation - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinI18n($locale = 'en_US', $relationAlias = null, $joinType = Criteria::LEFT_JOIN) - { - $relationName = $relationAlias ? $relationAlias : 'CarouselI18n'; - - return $this - ->joinCarouselI18n($relationAlias, $joinType) - ->addJoinCondition($relationName, $relationName . '.Locale = ?', $locale); - } - - /** - * Adds a JOIN clause to the query and hydrates the related I18n object. - * Shortcut for $c->joinI18n($locale)->with() - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselQuery The current query, for fluid interface - */ - public function joinWithI18n($locale = 'en_US', $joinType = Criteria::LEFT_JOIN) - { - $this - ->joinI18n($locale, null, $joinType) - ->with('CarouselI18n'); - $this->with['CarouselI18n']->setIsWithOneToMany(false); - - return $this; - } - - /** - * Use the I18n relation query object - * - * @see useQuery() - * - * @param string $locale Locale to use for the join condition, e.g. 'fr_FR' - * @param string $relationAlias optional alias for the relation - * @param string $joinType Accepted values are null, 'left join', 'right join', 'inner join'. Defaults to left join. - * - * @return ChildCarouselI18nQuery A secondary query class using the current class as primary query - */ - public function useI18nQuery($locale = 'en_US', $relationAlias = null, $joinType = Criteria::LEFT_JOIN) - { - return $this - ->joinI18n($locale, $relationAlias, $joinType) - ->useQuery($relationAlias ? $relationAlias : 'CarouselI18n', '\Carousel\Model\CarouselI18nQuery'); - } - -} // CarouselQuery diff --git a/local/modules/modules/Carousel/Model/Carousel.php b/local/modules/modules/Carousel/Model/Carousel.php deleted file mode 100644 index 50971104..00000000 --- a/local/modules/modules/Carousel/Model/Carousel.php +++ /dev/null @@ -1,113 +0,0 @@ -remove($carousel->getUploadDir() . DS . $this->getFile()); - - return true; - } catch (IOException $e) { - return false; - } - } - - /** - * Set file parent id - * - * @param int $parentId parent id - * - * @return $this - */ - public function setParentId($parentId) - { - return $this; - } - - /** - * Get file parent id - * - * @return int parent id - */ - public function getParentId() - { - return $this->getId(); - } - - /** - * @return FileModelParentInterface the parent file model - */ - public function getParentFileModel() - { - return new static; - } - - /** - * Get the ID of the form used to change this object information - * - * @return BaseForm the form - */ - public function getUpdateFormId() - { - return 'carousel.image'; - } - - /** - * @return string the path to the upload directory where files are stored, without final slash - */ - public function getUploadDir() - { - $carousel = new \Carousel\Carousel(); - return $carousel->getUploadDir(); - } - - /** - * @param int $objectId the object ID - * - * @return string the URL to redirect to after update from the back-office - */ - public function getRedirectionUrl() - { - return '/admin/module/Carousel'; - } - - /** - * Get the Query instance for this object - * - * @return ModelCriteria - */ - public function getQueryInstance() - { - return CarouselQuery::create(); - } - - /** - * @param bool $visible true if the file is visible, false otherwise - * @return FileModelInterface - */ - public function setVisible($visible) - { - // Not implemented - - return $this; - } -} diff --git a/local/modules/modules/Carousel/Model/CarouselI18n.php b/local/modules/modules/Carousel/Model/CarouselI18n.php deleted file mode 100644 index d03081e3..00000000 --- a/local/modules/modules/Carousel/Model/CarouselI18n.php +++ /dev/null @@ -1,10 +0,0 @@ -orderByPosition() - ->find(); - } -} // CarouselQuery diff --git a/local/modules/modules/Carousel/Model/Map/CarouselI18nTableMap.php b/local/modules/modules/Carousel/Model/Map/CarouselI18nTableMap.php deleted file mode 100644 index e63326c5..00000000 --- a/local/modules/modules/Carousel/Model/Map/CarouselI18nTableMap.php +++ /dev/null @@ -1,506 +0,0 @@ - array('Id', 'Locale', 'Alt', 'Title', 'Description', 'Chapo', 'Postscriptum', ), - self::TYPE_STUDLYPHPNAME => array('id', 'locale', 'alt', 'title', 'description', 'chapo', 'postscriptum', ), - self::TYPE_COLNAME => array(CarouselI18nTableMap::ID, CarouselI18nTableMap::LOCALE, CarouselI18nTableMap::ALT, CarouselI18nTableMap::TITLE, CarouselI18nTableMap::DESCRIPTION, CarouselI18nTableMap::CHAPO, CarouselI18nTableMap::POSTSCRIPTUM, ), - self::TYPE_RAW_COLNAME => array('ID', 'LOCALE', 'ALT', 'TITLE', 'DESCRIPTION', 'CHAPO', 'POSTSCRIPTUM', ), - self::TYPE_FIELDNAME => array('id', 'locale', 'alt', 'title', 'description', 'chapo', 'postscriptum', ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, ) - ); - - /** - * holds an array of keys for quick access to the fieldnames array - * - * first dimension keys are the type constants - * e.g. self::$fieldKeys[self::TYPE_PHPNAME]['Id'] = 0 - */ - protected static $fieldKeys = array ( - self::TYPE_PHPNAME => array('Id' => 0, 'Locale' => 1, 'Alt' => 2, 'Title' => 3, 'Description' => 4, 'Chapo' => 5, 'Postscriptum' => 6, ), - self::TYPE_STUDLYPHPNAME => array('id' => 0, 'locale' => 1, 'alt' => 2, 'title' => 3, 'description' => 4, 'chapo' => 5, 'postscriptum' => 6, ), - self::TYPE_COLNAME => array(CarouselI18nTableMap::ID => 0, CarouselI18nTableMap::LOCALE => 1, CarouselI18nTableMap::ALT => 2, CarouselI18nTableMap::TITLE => 3, CarouselI18nTableMap::DESCRIPTION => 4, CarouselI18nTableMap::CHAPO => 5, CarouselI18nTableMap::POSTSCRIPTUM => 6, ), - self::TYPE_RAW_COLNAME => array('ID' => 0, 'LOCALE' => 1, 'ALT' => 2, 'TITLE' => 3, 'DESCRIPTION' => 4, 'CHAPO' => 5, 'POSTSCRIPTUM' => 6, ), - self::TYPE_FIELDNAME => array('id' => 0, 'locale' => 1, 'alt' => 2, 'title' => 3, 'description' => 4, 'chapo' => 5, 'postscriptum' => 6, ), - self::TYPE_NUM => array(0, 1, 2, 3, 4, 5, 6, ) - ); - - /** - * Initialize the table attributes and columns - * Relations are not initialized by this method since they are lazy loaded - * - * @return void - * @throws PropelException - */ - public function initialize() - { - // attributes - $this->setName('carousel_i18n'); - $this->setPhpName('CarouselI18n'); - $this->setClassName('\\Carousel\\Model\\CarouselI18n'); - $this->setPackage('Carousel.Model'); - $this->setUseIdGenerator(false); - // columns - $this->addForeignPrimaryKey('ID', 'Id', 'INTEGER' , 'carousel', 'ID', true, null, null); - $this->addPrimaryKey('LOCALE', 'Locale', 'VARCHAR', true, 5, 'en_US'); - $this->addColumn('ALT', 'Alt', 'VARCHAR', false, 255, null); - $this->addColumn('TITLE', 'Title', 'VARCHAR', false, 255, null); - $this->addColumn('DESCRIPTION', 'Description', 'CLOB', false, null, null); - $this->addColumn('CHAPO', 'Chapo', 'LONGVARCHAR', false, null, null); - $this->addColumn('POSTSCRIPTUM', 'Postscriptum', 'LONGVARCHAR', false, null, null); - } // initialize() - - /** - * Build the RelationMap objects for this table relationships - */ - public function buildRelations() - { - $this->addRelation('Carousel', '\\Carousel\\Model\\Carousel', RelationMap::MANY_TO_ONE, array('id' => 'id', ), 'CASCADE', null); - } // buildRelations() - - /** - * Adds an object to the instance pool. - * - * Propel keeps cached copies of objects in an instance pool when they are retrieved - * from the database. In some cases you may need to explicitly add objects - * to the cache in order to ensure that the same objects are always returned by find*() - * and findPk*() calls. - * - * @param \Carousel\Model\CarouselI18n $obj A \Carousel\Model\CarouselI18n object. - * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). - */ - public static function addInstanceToPool($obj, $key = null) - { - if (Propel::isInstancePoolingEnabled()) { - if (null === $key) { - $key = serialize(array((string) $obj->getId(), (string) $obj->getLocale())); - } // if key === null - self::$instances[$key] = $obj; - } - } - - /** - * Removes an object from the instance pool. - * - * Propel keeps cached copies of objects in an instance pool when they are retrieved - * from the database. In some cases -- especially when you override doDelete - * methods in your stub classes -- you may need to explicitly remove objects - * from the cache in order to prevent returning objects that no longer exist. - * - * @param mixed $value A \Carousel\Model\CarouselI18n object or a primary key value. - */ - public static function removeInstanceFromPool($value) - { - if (Propel::isInstancePoolingEnabled() && null !== $value) { - if (is_object($value) && $value instanceof \Carousel\Model\CarouselI18n) { - $key = serialize(array((string) $value->getId(), (string) $value->getLocale())); - - } elseif (is_array($value) && count($value) === 2) { - // assume we've been passed a primary key"; - $key = serialize(array((string) $value[0], (string) $value[1])); - } elseif ($value instanceof Criteria) { - self::$instances = []; - - return; - } else { - $e = new PropelException("Invalid value passed to removeInstanceFromPool(). Expected primary key or \Carousel\Model\CarouselI18n object; got " . (is_object($value) ? get_class($value) . ' object.' : var_export($value, true))); - throw $e; - } - - unset(self::$instances[$key]); - } - } - - /** - * Retrieves a string version of the primary key from the DB resultset row that can be used to uniquely identify a row in this table. - * - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, a serialize()d version of the primary key will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - */ - public static function getPrimaryKeyHashFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - // If the PK cannot be derived from the row, return NULL. - if ($row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)] === null && $row[TableMap::TYPE_NUM == $indexType ? 1 + $offset : static::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)] === null) { - return null; - } - - return serialize(array((string) $row[TableMap::TYPE_NUM == $indexType ? 0 + $offset : static::translateFieldName('Id', TableMap::TYPE_PHPNAME, $indexType)], (string) $row[TableMap::TYPE_NUM == $indexType ? 1 + $offset : static::translateFieldName('Locale', TableMap::TYPE_PHPNAME, $indexType)])); - } - - /** - * Retrieves the primary key from the DB resultset row - * For tables with a single-column primary key, that simple pkey value will be returned. For tables with - * a multi-column primary key, an array of the primary key columns will be returned. - * - * @param array $row resultset row. - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM - * - * @return mixed The primary key of the row - */ - public static function getPrimaryKeyFromRow($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - - return $pks; - } - - /** - * The class that the tableMap will make instances of. - * - * If $withPrefix is true, the returned path - * uses a dot-path notation which is translated into a path - * relative to a location on the PHP include_path. - * (e.g. path.to.MyClass -> 'path/to/MyClass.php') - * - * @param boolean $withPrefix Whether or not to return the path with the class name - * @return string path.to.ClassName - */ - public static function getOMClass($withPrefix = true) - { - return $withPrefix ? CarouselI18nTableMap::CLASS_DEFAULT : CarouselI18nTableMap::OM_CLASS; - } - - /** - * Populates an object of the default type or an object that inherit from the default. - * - * @param array $row row returned by DataFetcher->fetch(). - * @param int $offset The 0-based offset for reading from the resultset row. - * @param string $indexType The index type of $row. Mostly DataFetcher->getIndexType(). - One of the class type constants TableMap::TYPE_PHPNAME, TableMap::TYPE_STUDLYPHPNAME - * TableMap::TYPE_COLNAME, TableMap::TYPE_FIELDNAME, TableMap::TYPE_NUM. - * - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - * @return array (CarouselI18n object, last column rank) - */ - public static function populateObject($row, $offset = 0, $indexType = TableMap::TYPE_NUM) - { - $key = CarouselI18nTableMap::getPrimaryKeyHashFromRow($row, $offset, $indexType); - if (null !== ($obj = CarouselI18nTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, $offset, true); // rehydrate - $col = $offset + CarouselI18nTableMap::NUM_HYDRATE_COLUMNS; - } else { - $cls = CarouselI18nTableMap::OM_CLASS; - $obj = new $cls(); - $col = $obj->hydrate($row, $offset, false, $indexType); - CarouselI18nTableMap::addInstanceToPool($obj, $key); - } - - return array($obj, $col); - } - - /** - * The returned array will contain objects of the default type or - * objects that inherit from the default. - * - * @param DataFetcherInterface $dataFetcher - * @return array - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function populateObjects(DataFetcherInterface $dataFetcher) - { - $results = array(); - - // set the class once to avoid overhead in the loop - $cls = static::getOMClass(false); - // populate the object(s) - while ($row = $dataFetcher->fetch()) { - $key = CarouselI18nTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType()); - if (null !== ($obj = CarouselI18nTableMap::getInstanceFromPool($key))) { - // We no longer rehydrate the object, since this can cause data loss. - // See http://www.propelorm.org/ticket/509 - // $obj->hydrate($row, 0, true); // rehydrate - $results[] = $obj; - } else { - $obj = new $cls(); - $obj->hydrate($row); - $results[] = $obj; - CarouselI18nTableMap::addInstanceToPool($obj, $key); - } // if key exists - } - - return $results; - } - /** - * Add all the columns needed to create a new object. - * - * Note: any columns that were marked with lazyLoad="true" in the - * XML schema will not be added to the select list and only loaded - * on demand. - * - * @param Criteria $criteria object containing the columns to add. - * @param string $alias optional table alias - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function addSelectColumns(Criteria $criteria, $alias = null) - { - if (null === $alias) { - $criteria->addSelectColumn(CarouselI18nTableMap::ID); - $criteria->addSelectColumn(CarouselI18nTableMap::LOCALE); - $criteria->addSelectColumn(CarouselI18nTableMap::ALT); - $criteria->addSelectColumn(CarouselI18nTableMap::TITLE); - $criteria->addSelectColumn(CarouselI18nTableMap::DESCRIPTION); - $criteria->addSelectColumn(CarouselI18nTableMap::CHAPO); - $criteria->addSelectColumn(CarouselI18nTableMap::POSTSCRIPTUM); - } else { - $criteria->addSelectColumn($alias . '.ID'); - $criteria->addSelectColumn($alias . '.LOCALE'); - $criteria->addSelectColumn($alias . '.ALT'); - $criteria->addSelectColumn($alias . '.TITLE'); - $criteria->addSelectColumn($alias . '.DESCRIPTION'); - $criteria->addSelectColumn($alias . '.CHAPO'); - $criteria->addSelectColumn($alias . '.POSTSCRIPTUM'); - } - } - - /** - * Returns the TableMap related to this object. - * This method is not needed for general use but a specific application could have a need. - * @return TableMap - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function getTableMap() - { - return Propel::getServiceContainer()->getDatabaseMap(CarouselI18nTableMap::DATABASE_NAME)->getTable(CarouselI18nTableMap::TABLE_NAME); - } - - /** - * Add a TableMap instance to the database for this tableMap class. - */ - public static function buildTableMap() - { - $dbMap = Propel::getServiceContainer()->getDatabaseMap(CarouselI18nTableMap::DATABASE_NAME); - if (!$dbMap->hasTable(CarouselI18nTableMap::TABLE_NAME)) { - $dbMap->addTableObject(new CarouselI18nTableMap()); - } - } - - /** - * Performs a DELETE on the database, given a CarouselI18n or Criteria object OR a primary key value. - * - * @param mixed $values Criteria or CarouselI18n object or primary key or array of primary keys - * which is used to create the DELETE statement - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). This includes CASCADE-related rows - * if supported by native driver or if emulated using Propel. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doDelete($values, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - if ($values instanceof Criteria) { - // rename for clarity - $criteria = $values; - } elseif ($values instanceof \Carousel\Model\CarouselI18n) { // it's a model object - // create criteria based on pk values - $criteria = $values->buildPkeyCriteria(); - } else { // it's a primary key, or an array of pks - $criteria = new Criteria(CarouselI18nTableMap::DATABASE_NAME); - // primary key is composite; we therefore, expect - // the primary key passed to be an array of pkey values - if (count($values) == count($values, COUNT_RECURSIVE)) { - // array is not multi-dimensional - $values = array($values); - } - foreach ($values as $value) { - $criterion = $criteria->getNewCriterion(CarouselI18nTableMap::ID, $value[0]); - $criterion->addAnd($criteria->getNewCriterion(CarouselI18nTableMap::LOCALE, $value[1])); - $criteria->addOr($criterion); - } - } - - $query = CarouselI18nQuery::create()->mergeWith($criteria); - - if ($values instanceof Criteria) { CarouselI18nTableMap::clearInstancePool(); - } elseif (!is_object($values)) { // it's a primary key, or an array of pks - foreach ((array) $values as $singleval) { CarouselI18nTableMap::removeInstanceFromPool($singleval); - } - } - - return $query->delete($con); - } - - /** - * Deletes all rows from the carousel_i18n table. - * - * @param ConnectionInterface $con the connection to use - * @return int The number of affected rows (if supported by underlying database driver). - */ - public static function doDeleteAll(ConnectionInterface $con = null) - { - return CarouselI18nQuery::create()->doDeleteAll($con); - } - - /** - * Performs an INSERT on the database, given a CarouselI18n or Criteria object. - * - * @param mixed $criteria Criteria or CarouselI18n object containing data that is used to create the INSERT statement. - * @param ConnectionInterface $con the ConnectionInterface connection to use - * @return mixed The new primary key. - * @throws PropelException Any exceptions caught during processing will be - * rethrown wrapped into a PropelException. - */ - public static function doInsert($criteria, ConnectionInterface $con = null) - { - if (null === $con) { - $con = Propel::getServiceContainer()->getWriteConnection(CarouselI18nTableMap::DATABASE_NAME); - } - - if ($criteria instanceof Criteria) { - $criteria = clone $criteria; // rename for clarity - } else { - $criteria = $criteria->buildCriteria(); // build Criteria from CarouselI18n object - } - - - // Set the correct dbName - $query = CarouselI18nQuery::create()->mergeWith($criteria); - - try { - // use transaction because $criteria could contain info - // for more than one table (I guess, conceivably) - $con->beginTransaction(); - $pk = $query->doInsert($con); - $con->commit(); - } catch (PropelException $e) { - $con->rollBack(); - throw $e; - } - - return $pk; - } - -} // CarouselI18nTableMap -// This is the static code needed to register the TableMap for this table with the main Propel class. -// -CarouselI18nTableMap::buildTableMap(); diff --git a/local/modules/modules/Carousel/Readme.md b/local/modules/modules/Carousel/Readme.md deleted file mode 100644 index 6b372438..00000000 --- a/local/modules/modules/Carousel/Readme.md +++ /dev/null @@ -1,62 +0,0 @@ -# Carousel - -This module for Thelia add a customizable carousel on your home page. You can upload you own image and overload the default template in your template for using the carousel. - -## Installation - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is Carousel. -* Activate it in your thelia administration panel - -## Usage - -In the configuration panel of this module, you can upload as many images as you want. - -## Hook - -The carousel is installed in the "Home page - main area" (home.body) hook. - -## Loop - -Customize images with the `carousel` loop, which has the same arguments as the `image` loop. You can define a width, a height, and many other parameters - -### Input arguments - -|Argument |Description | -|--- |--- | -|**width** | A width in pixels, for resizing image. If only the width is provided, the image ratio is preserved. Example : width="200" | -|**height** | A height in pixels, for resizing image. If only the height is provided, the image ratio is preserved. example : height="200" | -|**rotation** |The rotation angle in degrees (positive or negative) applied to the image. The background color of the empty areas is the one specified by 'background_color'. example : rotation="90" | -|**background_color** |The color applied to empty image parts during processing. Use $rgb or $rrggbb color format. example : background_color="$cc8000"| -|**quality** |The generated image quality, from 0(!) to 100%. The default value is 75% (you can hange this in the Administration panel). example : quality="70"| -|**resize_mode** | If 'crop', the image will have the exact specified width and height, and will be cropped if required. If 'borders', the image will have the exact specified width and height, and some borders may be added. The border color is the one specified by 'background_color'. If 'none' or missing, the image ratio is preserved, and depending od this ratio, may not have the exact width and height required. resize_mode="crop"| -|**effects** |One or more comma separated effects definitions, that will be applied to the image in the specified order. Please see below a detailed description of available effects. Expected values :
    • gamma:value : change the image Gamma to the specified value. Example: gamma:0.7.
    • grayscale or greyscale : switch image to grayscale.
    • colorize:color : apply a color mask to the image. The color format is $rgb or $rrggbb. Example: colorize:$ff2244.
    • negative : transform the image in its negative equivalent.
    • vflip or vertical_flip : flip the image vertically.
    • hflip or horizontal_flip : flip the image horizontally.
    example : effects="greyscale,gamma:0.7,vflip" | - -### Ouput arguments - -|Variable |Description | -|--- |--- | -|$ID |the image ID | -|$IMAGE_URL |The absolute URL to the generated image | -|$ORIGINAL_IMAGE_URL |The absolute URL to the original image | -|$IMAGE_PATH |The absolute path to the generated image file | -|$ORIGINAL_IMAGE_PATH |The absolute path to the original image file | -|$ALT |alt text | -|$TITLE |the image title | -|$CHAPO |the image summary | -|$DESCRIPTION |the image description | -|$POSTSCRIPTUM |the image conclusion | -|$LOCALE |the textual elements locale | -|$POSITION |the image position in the carousel | -|$URL |the related URL | - -### Exemple - -``` -{loop type="carousel" name="carousel.front" width="1200" height="390" resize_mode="borders"} - {$ALT} -{/loop} -``` - -## How to override ? - -If you want your own carousel in your tempalte, create the directory ```modules/Carousel``` then create the template ```carousel.html``` in this directory. Here you can create your own carousel and the replace the default template provided in the module. diff --git a/local/modules/modules/Carousel/composer.json b/local/modules/modules/Carousel/composer.json deleted file mode 100644 index 5cfd6d37..00000000 --- a/local/modules/modules/Carousel/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/carousel-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Carousel" - } -} diff --git a/local/modules/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js b/local/modules/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index 54b03e5f..00000000 --- a/local/modules/modules/Carousel/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,6 +0,0 @@ -$(function() { - // Set proper image ID in delete from - $('a.image-delete').click(function(ev) { - $('#image_delete_id').val($(this).data('id')); - }); -}); diff --git a/local/modules/modules/Carousel/templates/backOffice/default/module_configuration.html b/local/modules/modules/Carousel/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 3904630f..00000000 --- a/local/modules/modules/Carousel/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,136 +0,0 @@ -
    -
    -
    - {intl l='Edit your carousel.' d='carousel.bo.default'} -
    -
    - -
    -
    -
    - {form name="carousel.image"} - - - {form_hidden_fields} - - {form_field field='file'} -
    - -
    - - - - -
    -
    - {/form_field} - - {/form} -
    -
    -
    - -
    -
    - {intl l='Carousel images' d='carousel.bo.default'} -
    -
    - -
    -
    -
    - {ifloop rel="carousel.image"} - {form name="carousel.update"} -
    - - {include - file = "includes/inner-form-toolbar.html" - page_url = "{url path='/admin/module/Carousel'}" - close_url = "{url path='/admin/modules'}" - } - - {form_hidden_fields} - - {loop name="carousel.image" type="carousel" width="550" height="200" resize_mode="borders" backend_context="1" lang="$edit_language_id"} - -
    -
    -
    -

    - - {$ALT} - -

    - - - -
    -
    - -
    -
    - {form_field field="position{$ID}"} - - {/form_field} -
    -
    -
    - -
    - {* Not yet implemented - {render_form_field field="chapo{$ID} value=$CHAPO"} - *} - {render_form_field field="title{$ID}" value=$TITLE} - {render_form_field field="alt{$ID}" value=$ALT} - {render_form_field field="url{$ID}" value=$URL} - {render_form_field field="description{$ID}" extra_class="wysiwyg" value=$DESCRIPTION} - {* Not yet implemented - {render_form_field field="postscriptum{$ID}" value=$POSTSCRIPTUM} - *} -
    -
    -
    - {/loop} - - {include - file = "includes/inner-form-toolbar.html" - page_url = "{url path='/admin/module/Carousel'}" - close_url = "{url path='/admin/modules'}" - page_bottom = true - } -
    - {/form} - {/ifloop} - - {elseloop rel="carousel.image"} -
    - {intl d='carousel.bo.default' l="Your carousel contains no image. Please add one using the form above."} -
    - {/elseloop} -
    -
    -
    -
    - -{capture "delete_dialog"} - -{/capture} - -{include -file = "includes/generic-confirm-dialog.html" - -dialog_id = "delete_carousel_dialog" -dialog_title = {intl l="Delete a carousel image" d="carousel.bo.default"} -dialog_message = {intl l="Do you really want to remove this image from the carousel ?" d="carousel.bo.default"} - -form_action = {url path='/admin/module/carousel/delete'} -form_content = {$smarty.capture.delete_dialog nofilter} -} - - - - diff --git a/local/modules/modules/Carousel/templates/frontOffice/default/carousel.html b/local/modules/modules/Carousel/templates/frontOffice/default/carousel.html deleted file mode 100644 index 6a714a5e..00000000 --- a/local/modules/modules/Carousel/templates/frontOffice/default/carousel.html +++ /dev/null @@ -1,24 +0,0 @@ -{ifloop rel="carousel.front"} - -{/ifloop} \ No newline at end of file diff --git a/local/modules/modules/Cheque/Cheque.php b/local/modules/modules/Cheque/Cheque.php deleted file mode 100644 index 8d1e94c9..00000000 --- a/local/modules/modules/Cheque/Cheque.php +++ /dev/null @@ -1,73 +0,0 @@ -getCurrentOrderTotalAmount() > 0; - } - - public function postActivation(ConnectionInterface $con = null) - { - $database = new Database($con); - - // Insert email message - $database->insertSql(null, array(__DIR__ . "/Config/setup.sql")); - } - - public function destroy(ConnectionInterface $con = null, $deleteModuleData = false) - { - // Delete our message - if (null !== $message = MessageQuery::create()->findOneByName('order_confirmation_cheque')) { - $message->delete($con); - } - - parent::destroy($con, $deleteModuleData); - } - - /** - * if you want, you can manage stock in your module instead of order process. - * Return false if you want to manage yourself the stock - * - * @return bool - */ - public function manageStockOnCreation() - { - return false; - } -} diff --git a/local/modules/modules/Cheque/Config/config.xml b/local/modules/modules/Cheque/Config/config.xml deleted file mode 100644 index b09cf496..00000000 --- a/local/modules/modules/Cheque/Config/config.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - -
    - - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/Cheque/Config/module.xml b/local/modules/modules/Cheque/Config/module.xml deleted file mode 100644 index 14f8675a..00000000 --- a/local/modules/modules/Cheque/Config/module.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - Cheque\Cheque - - Cheque - - - Cheque - - images - - en_US - fr_FR - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - payment - 2.2.0 - alpha - diff --git a/local/modules/modules/Cheque/Config/routing.xml b/local/modules/modules/Cheque/Config/routing.xml deleted file mode 100644 index 8c741c05..00000000 --- a/local/modules/modules/Cheque/Config/routing.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - Cheque\Controller\ConfigureController::configure - - diff --git a/local/modules/modules/Cheque/Config/setup.sql b/local/modules/modules/Cheque/Config/setup.sql deleted file mode 100644 index 2f91a0e7..00000000 --- a/local/modules/modules/Cheque/Config/setup.sql +++ /dev/null @@ -1,32 +0,0 @@ --- --------------------------------------------------------------------- --- Mail template for cheque --- --------------------------------------------------------------------- - --- First, delete existing entries -SET @var := 0; -SELECT @var := `id` FROM `message` WHERE name="order_confirmation_cheque"; -DELETE FROM `message` WHERE `id`=@var; - --- Then add new entries -SELECT @max := MAX(`id`) FROM `message`; -SET @max := @max+1; - --- insert message -INSERT INTO `message` (`id`, `name`, `secured`) VALUES - (@max, - 'order_confirmation_cheque', - '0' - ); --- and mail templates -INSERT INTO `message_i18n` (`id`, `locale`, `title`, `subject`, `text_message`, `html_message`) VALUES - (@max, - 'en_US', - 'Confirmation of payment by cheque', - 'Payment of order {$order_ref}', 'Dear customer,\r\nThis is a confirmation of the payment by cheque of your order {$order_ref} on our shop.\r\nYour invoice is now available in your customer account at {config key="url_site"}\r\nThank you again for your purchase.\r\nThe {config key="store_name"} team.', '\r\n\r\n\r\n \r\n courriel de confirmation de commande de {config key="url_site"} \r\n \r\n\r\n\r\n
    \r\n
    \r\n

    {config key="store_name"}

    \r\n

    The payment of your order is confirmed

    \r\n

    Reference {$order_ref}

    \r\n
    \r\n

    \r\n Your invoice is now available in your customer account on\r\n {config key="store_name"}.\r\n

    \r\n

    Thank you for your order !

    \r\n

    The {config key="store_name"} team.

    \r\n
    \r\n\r\n' - ), - (@max, - 'fr_FR', - 'Confirmation de paiement par chèque', - 'Paiement de la commande : {$order_ref}', - 'Cher client,\r\nCe message confirme le paiement par chèque de votre commande numero {$order_ref} sur notre boutique.\r\nVotre facture est maintenant disponible dans votre compte client à l''adresse {config key="url_site"}\r\nMerci encore pour votre achat !\r\nL''équipe {config key="store_name"}', '\r\n\r\n\r\n \r\n Confirmation du paiement de votre commande sur {config key="url_site"} \r\n \r\n\r\n\r\n
    \r\n
    \r\n

    {config key="store_name"}

    \r\n

    Confirmation du paiement de votre commande

    \r\n

    N° {$order_ref}

    \r\n
    \r\n

    \r\n Le suivi de votre commande est disponible dans la rubrique mon compte sur\r\n {config key="url_site"}\r\n

    \r\n

    Merci pour votre achat !

    \r\n

    L''équipe {config key="store_name"}

    \r\n
    \r\n\r\n' - ); diff --git a/local/modules/modules/Cheque/Controller/ConfigureController.php b/local/modules/modules/Cheque/Controller/ConfigureController.php deleted file mode 100644 index 5aea04ed..00000000 --- a/local/modules/modules/Cheque/Controller/ConfigureController.php +++ /dev/null @@ -1,98 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Controller; - -use Cheque\Cheque; -use Cheque\Form\ConfigurationForm; -use Symfony\Component\HttpFoundation\RedirectResponse; -use Thelia\Controller\Admin\BaseAdminController; -use Thelia\Core\Security\AccessManager; -use Thelia\Core\Security\Resource\AdminResources; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Tools\URL; - -/** - * Class SetTransferConfig - * @package WireTransfer\Controller - * @author Thelia - */ -class ConfigureController extends BaseAdminController -{ - public function configure() - { - if (null !== $response = $this->checkAuth(AdminResources::MODULE, 'Cheque', AccessManager::UPDATE)) { - return $response; - } - - // Initialize the potential exception - $ex = null; - - // Create the Form from the request - $configurationForm = $this->createForm('cheque.instructions.configure'); - - try { - // Check the form against constraints violations - $form = $this->validateForm($configurationForm, "POST"); - - // Get the form field values - $data = $form->getData(); - - Cheque::setConfigValue('instructions', $data['instructions'], $this->getCurrentEditionLocale()); - Cheque::setConfigValue('payable_to', $data['payable_to']); - - // Log configuration modification - $this->adminLogAppend( - "cheque.configuration.message", - AccessManager::UPDATE, - sprintf("Cheque instructions configuration updated") - ); - - // Everything is OK. - return new RedirectResponse(URL::getInstance()->absoluteUrl('/admin/module/Cheque')); - - } catch (FormValidationException $ex) { - // Form cannot be validated. Create the error message using - // the BaseAdminController helper method. - $error_msg = $this->createStandardFormValidationErrorMessage($ex); - } - catch (\Exception $ex) { - // Any other error - $error_msg = $ex->getMessage(); - } - - // At this point, the form has errors, and should be redisplayed. We don not redirect, - // just redisplay the same template. - // Setup the Form error context, to make error information available in the template. - $this->setupFormErrorContext( - $this->getTranslator()->trans("Cheque instructions configuration", [], Cheque::MESSAGE_DOMAIN), - $error_msg, - $configurationForm, - $ex - ); - - // Do not redirect at this point, or the error context will be lost. - // Just redisplay the current template. - return $this->render('module-configure', array('module_code' => 'Cheque')); - } -} \ No newline at end of file diff --git a/local/modules/modules/Cheque/Form/ConfigurationForm.php b/local/modules/modules/Cheque/Form/ConfigurationForm.php deleted file mode 100644 index 6ab4d5a0..00000000 --- a/local/modules/modules/Cheque/Form/ConfigurationForm.php +++ /dev/null @@ -1,90 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Form; - -use Cheque\Cheque; -use Symfony\Component\Validator\Constraints\NotBlank; -use Thelia\Core\Translation\Translator; -use Thelia\Form\BaseForm; - -/** - * Class ConfigurationForm - * @package Cheque\Form - * @author Thelia - */ -class ConfigurationForm extends BaseForm -{ - protected function trans($str, $params = []) - { - return Translator::getInstance()->trans($str, $params, Cheque::MESSAGE_DOMAIN); - } - - protected function buildForm() - { - $this->formBuilder - ->add( - 'payable_to', - 'text', - [ - 'constraints' => [ new NotBlank() ], - 'label' => $this->trans('Cheque is payable to: '), - 'label_attr' => [ - 'for' => 'payable_to', - 'help' => $this->trans('The name to which the cheque shoud be payable to.') - ], - 'attr' => [ - 'rows' => 10, - 'placeholder' => $this->trans('Pay cheque to') - ] - ] - ) - ->add( - 'instructions', - 'textarea', - [ - 'constraints' => [], - 'required' => false, - 'label' => $this->trans('Cheque instructions'), - 'label_attr' => [ - 'for' => 'namefield', - 'help' => $this->trans('Please enter here the payment by cheque instructions') - ], - 'attr' => [ - 'rows' => 10, - 'placeholder' => $this->trans('Payment instruction') - ] - ] - ) - ; - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return 'cheque_configuration_instructions'; - } -} \ No newline at end of file diff --git a/local/modules/modules/Cheque/Hook/HookManager.php b/local/modules/modules/Cheque/Hook/HookManager.php deleted file mode 100644 index c0798886..00000000 --- a/local/modules/modules/Cheque/Hook/HookManager.php +++ /dev/null @@ -1,34 +0,0 @@ - - */ -class HookManager extends BaseHook { - - public function onAdditionalPaymentInfo(HookRenderEvent $event) - { - $content = $this->render("order-placed.additional-payment-info.html", [ - 'placed_order_id' => $event->getArgument('placed_order_id') - ]); - - $event->add($content); - } -} \ No newline at end of file diff --git a/local/modules/modules/Cheque/I18n/backOffice/default/de_DE.php b/local/modules/modules/Cheque/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 6e6d3a79..00000000 --- a/local/modules/modules/Cheque/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Scheck-Anleitungen-Konfiguration', -]; diff --git a/local/modules/modules/Cheque/I18n/backOffice/default/en_US.php b/local/modules/modules/Cheque/I18n/backOffice/default/en_US.php deleted file mode 100644 index 2219a2f7..00000000 --- a/local/modules/modules/Cheque/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Cheque instructions configuration', -); diff --git a/local/modules/modules/Cheque/I18n/backOffice/default/fr_FR.php b/local/modules/modules/Cheque/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 71ae3192..00000000 --- a/local/modules/modules/Cheque/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Instructions de paiement par chèque', -]; diff --git a/local/modules/modules/Cheque/I18n/backOffice/default/tr_TR.php b/local/modules/modules/Cheque/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 9490b898..00000000 --- a/local/modules/modules/Cheque/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Çek yönergeleri yapılandırma', -]; diff --git a/local/modules/modules/Cheque/I18n/de_DE.php b/local/modules/modules/Cheque/I18n/de_DE.php deleted file mode 100644 index ffd4ad36..00000000 --- a/local/modules/modules/Cheque/I18n/de_DE.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Scheck-Anweisungen', - 'Cheque instructions configuration' => 'Scheck-Anleitungen-Konfiguration', - 'Cheque is payable to: ' => 'Scheck ist zahlbar an: ', - 'Pay cheque to' => 'Scheck bezahlen an', - 'Payment instruction' => 'Zahlungsanweisungen', - 'Please enter here the payment by cheque instructions' => 'Bitte geben Sie hier die Zahlung durch Scheck Anweisungen ein', - 'The name to which the cheque shoud be payable to.' => 'Der Name, an den der Scheck bezahlbar sein soll.', -]; diff --git a/local/modules/modules/Cheque/I18n/en_US.php b/local/modules/modules/Cheque/I18n/en_US.php deleted file mode 100644 index 9a0ebf14..00000000 --- a/local/modules/modules/Cheque/I18n/en_US.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Cheque instructions', - 'Cheque instructions configuration' => 'Cheque instructions configuration', - 'Cheque is payable to: ' => 'Cheque is payable to: ', - 'Pay cheque to' => 'Pay cheque to', - 'Payment instruction' => 'Payment instruction', - 'Please enter here the payment by cheque instructions' => 'Please enter here the payment by cheque instructions', - 'The name to which the cheque shoud be payable to.' => 'The name to which the cheque shoud be payable to.', -); diff --git a/local/modules/modules/Cheque/I18n/fr_FR.php b/local/modules/modules/Cheque/I18n/fr_FR.php deleted file mode 100644 index b286ccaf..00000000 --- a/local/modules/modules/Cheque/I18n/fr_FR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Instructions de paiement', - 'Cheque instructions configuration' => 'Instructions de paiement par chèque', - 'Cheque is payable to: ' => 'Ordre du chèque', - 'Pay cheque to' => 'Ordre du chèque', - 'Payment instruction' => 'Instructions de paiement', - 'Please enter here the payment by cheque instructions' => 'Indiquez ici les instructions particulières de paiement par chèque', - 'The name to which the cheque shoud be payable to.' => 'Le nom à fare figurer sur le chèque', -]; diff --git a/local/modules/modules/Cheque/I18n/frontOffice/default/de_DE.php b/local/modules/modules/Cheque/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index b87c46ae..00000000 --- a/local/modules/modules/Cheque/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Vergessen Sie nicht, Ihren Scheck zu unterschreiben !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Bitte stellen Sie den Scheck auf %name, und senden Sie es an die folgende Adresse : ', -]; diff --git a/local/modules/modules/Cheque/I18n/frontOffice/default/en_US.php b/local/modules/modules/Cheque/I18n/frontOffice/default/en_US.php deleted file mode 100644 index ac9f8aaa..00000000 --- a/local/modules/modules/Cheque/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Be sure to sign your cheque !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Please make your cheque payable to %name, and send it to the following address :', -); diff --git a/local/modules/modules/Cheque/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/Cheque/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index b2ac1579..00000000 --- a/local/modules/modules/Cheque/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'N\'oubliez par de signer votre chèque !', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Merci de libeller votre chèque à l\'ordre de %name, et de l\'expédier à l\'adresse suivante :', -]; diff --git a/local/modules/modules/Cheque/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/Cheque/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 1337c364..00000000 --- a/local/modules/modules/Cheque/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Çekini imzalamak emin olun!', - 'Please make your cheque payable to %name, and send it to the following address :' => 'Lütfen, Çek %name için ödenecek olun ve aşağıdaki adrese gönderin:', -]; diff --git a/local/modules/modules/Cheque/I18n/tr_TR.php b/local/modules/modules/Cheque/I18n/tr_TR.php deleted file mode 100644 index 80a9c5e3..00000000 --- a/local/modules/modules/Cheque/I18n/tr_TR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Çek yönergeleri', - 'Cheque instructions configuration' => 'Çek yönergeleri yapılandırma', - 'Cheque is payable to: ' => 'Çek için ödenir: ', - 'Pay cheque to' => 'Çek için ödeme', - 'Payment instruction' => 'Ödeme talimatı', - 'Please enter here the payment by cheque instructions' => 'Lütfen burada ödeme çek yönergeleri tarafından girin', - 'The name to which the cheque shoud be payable to.' => 'Adı için çek shoud için ödenecek.', -]; diff --git a/local/modules/modules/Cheque/LICENSE.txt b/local/modules/modules/Cheque/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/Cheque/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/Cheque/Listener/SendPaymentConfirmationEmail.php b/local/modules/modules/Cheque/Listener/SendPaymentConfirmationEmail.php deleted file mode 100644 index bad9482a..00000000 --- a/local/modules/modules/Cheque/Listener/SendPaymentConfirmationEmail.php +++ /dev/null @@ -1,85 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Cheque\Listener; - -use Cheque\Cheque; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Thelia\Action\BaseAction; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Mailer\MailerFactory; - -/** - * Class SendEMail - * @package IciRelais\Listener - * @author Thelia - */ -class SendPaymentConfirmationEmail extends BaseAction implements EventSubscriberInterface -{ - /** - * @var MailerFactory - */ - protected $mailer; - - public function __construct(MailerFactory $mailer) - { - $this->mailer = $mailer; - } - - /** - * @param OrderEvent $event - * - * Check if we're the payment module, and send the payment confirmation email to the customer if it's the case. - */ - public function sendConfirmationEmail(OrderEvent $event) - { - if ($event->getOrder()->getPaymentModuleId() === Cheque::getModuleId()) { - - if ($event->getOrder()->isPaid()) { - - $order = $event->getOrder(); - - $this->mailer->sendEmailToCustomer( - 'order_confirmation_cheque', - $order->getCustomer(), - [ - 'order_id' => $order->getId(), - 'order_ref' => $order->getRef() - ] - ); - } - } - } - - /** - * @inheritdoc - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("sendConfirmationEmail", 128) - ); - } - -} diff --git a/local/modules/modules/Cheque/composer.json b/local/modules/modules/Cheque/composer.json deleted file mode 100644 index 8dca2321..00000000 --- a/local/modules/modules/Cheque/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/cheque-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Cheque" - } -} diff --git a/local/modules/modules/Cheque/images/cheque.png b/local/modules/modules/Cheque/images/cheque.png deleted file mode 100644 index 0aad099e..00000000 Binary files a/local/modules/modules/Cheque/images/cheque.png and /dev/null differ diff --git a/local/modules/modules/Cheque/templates/backOffice/default/module_configuration.html b/local/modules/modules/Cheque/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 5cdeb14b..00000000 --- a/local/modules/modules/Cheque/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,55 +0,0 @@ -{if isset($smarty.get.errmes) && !empty($smarty.get.errmes)} -
    - {$smarty.get.errmes} -
    -{/if} - -
    -
    - -
    -
    - {intl d='cheque.bo.default' l="Cheque instructions configuration"} -
    -
    - -
    -
    -
    - - {form name="cheque.instructions.configure"} - - - - {include - file = "includes/inner-form-toolbar.html" - hide_submit_buttons = false - - page_url = {url path="/admin/module/Cheque"} - close_url = {url path="/admin/modules"} - } - - {form_hidden_fields} - - {if $form_error} -
    -
    -
    {$form_error_message}
    -
    -
    - {/if} - - {loop type="module-config" name="get-payable-to" module="Cheque" variable="payable_to"} - {render_form_field field="payable_to" value=$VALUE} - {/loop} - - {loop type="module-config" name="get-instruction" module="Cheque" variable="instructions" locale=$edit_language_locale} - {render_form_field field="instructions" extra_class="wysiwyg" value=$VALUE} - {/loop} - - {/form} -
    -
    -
    -
    -
    \ No newline at end of file diff --git a/local/modules/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html b/local/modules/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html deleted file mode 100644 index ddc89478..00000000 --- a/local/modules/modules/Cheque/templates/frontOffice/default/order-placed.additional-payment-info.html +++ /dev/null @@ -1,21 +0,0 @@ -{loop type="module-config" name="cheque-instructions" module="cheque" variable="payable_to"} -

    {intl d='cheque.fo.default' l="Please make your cheque payable to %name, and send it to the following address :" name={$VALUE}}

    -{/loop} - -
    - {config key="store_name"}
    - {config key="store_address1"}
    - {if ! empty({config key="store_address2"})}{config key="store_address2"}
    {/if} - {if ! empty({config key="store_address3"})}{config key="store_address3"}
    {/if} - {config key="store_zipcode"}, {config key="store_city"}
    - {if {config key="store_country"}} - {loop type="country" name="store_country" id={config key="store_country"}} - {$TITLE}
    - {/loop} - {/if} -
    -

    {intl d='cheque.fo.default' l="Be sure to sign your cheque !"}

    - -{loop type="module-config" name="cheque-instructions" module="cheque" variable="instructions" locale={lang attr='locale'}} -

    {$VALUE nofilter}

    -{/loop} diff --git a/local/modules/modules/Colissimo/Colissimo.php b/local/modules/modules/Colissimo/Colissimo.php deleted file mode 100644 index c1023908..00000000 --- a/local/modules/modules/Colissimo/Colissimo.php +++ /dev/null @@ -1,177 +0,0 @@ -insertSql(null, array(__DIR__ . '/Config/thelia.sql')); - } - - public function isValidDelivery(Country $country) - { - if (0 == self::getConfigValue(ColissimoConfigValue::ENABLED, 1)) { - return false; - } - - if (null !== $area = $this->getAreaForCountry($country)) { - $areaId = $area->getId(); - - $prices = self::getPrices(); - - /* Check if Colissimo delivers the area */ - if (isset($prices[$areaId]) && isset($prices[$areaId]["slices"])) { - // Yes ! Check if the cart weight is below slice limit - $areaPrices = $prices[$areaId]["slices"]; - ksort($areaPrices); - - /* Check cart weight is below the maximum weight */ - end($areaPrices); - $maxWeight = key($areaPrices); - - $cartWeight = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher())->getWeight(); - - if ($cartWeight <= $maxWeight) { - return true; - } - } - } - - return false; - } - - /** - * @param $areaId - * @param $weight - * - * @return mixed - * @throws \Thelia\Exception\OrderException - */ - public static function getPostageAmount($areaId, $weight) - { - $freeshipping = Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING); - $postage = 0; - if (!$freeshipping) { - $prices = self::getPrices(); - - /* check if Colissimo delivers the asked area */ - if (!isset($prices[$areaId]) || !isset($prices[$areaId]["slices"])) { - throw new DeliveryException( - Translator::getInstance()->trans( - "Colissimo delivery unavailable for the delivery country", - [], - self::DOMAIN_NAME - ) - ); - } - - $areaPrices = $prices[$areaId]["slices"]; - ksort($areaPrices); - - /* Check cart weight is below the maximum weight */ - end($areaPrices); - $maxWeight = key($areaPrices); - if ($weight > $maxWeight) { - throw new DeliveryException( - Translator::getInstance()->trans( - "Colissimo delivery unavailable for this cart weight (%weight kg)", - array("%weight" => $weight), - self::DOMAIN_NAME - ) - ); - } - - $postage = current($areaPrices); - - while (prev($areaPrices)) { - if ($weight > key($areaPrices)) { - break; - } - - $postage = current($areaPrices); - } - } - return $postage; - - } - - /** - * - * calculate and return delivery price - * - * @param Country $country - * @return mixed - * @throws \Thelia\Exception\OrderException - */ - public function getPostage(Country $country) - { - $cartWeight = $this->getRequest()->getSession()->getSessionCart($this->getDispatcher())->getWeight(); - - $postage = self::getPostageAmount( - $this->getAreaForCountry($country)->getId(), - $cartWeight - ); - - return $postage; - } - - public function update($currentVersion, $newVersion, ConnectionInterface $con = null) - { - $uploadDir = __DIR__ . '/Config/prices.json'; - - $database = new Database($con); - - $tableExists = $database->execute("SHOW TABLES LIKE 'colissimo_freeshipping'")->rowCount(); - - if (Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING, null) == null && $tableExists) { - $result = $database->execute('SELECT active FROM colissimo_freeshipping WHERE id=1')->fetch()["active"]; - Colissimo::setConfigValue(ColissimoConfigValue::FREE_SHIPPING, $result); - $database->execute("DROP TABLE `colissimo_freeshipping`"); - } - - if (is_readable($uploadDir) && Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null) == null) { - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, file_get_contents($uploadDir)); - } - } -} diff --git a/local/modules/modules/Colissimo/Config/config.xml b/local/modules/modules/Colissimo/Config/config.xml deleted file mode 100644 index fb02632e..00000000 --- a/local/modules/modules/Colissimo/Config/config.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/Colissimo/Config/module.xml b/local/modules/modules/Colissimo/Config/module.xml deleted file mode 100644 index b6d71aab..00000000 --- a/local/modules/modules/Colissimo/Config/module.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - Colissimo\Colissimo - - Colissimo delivery - - - Livraison par Colissimo - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - delivery - 2.2.0 - alpha - diff --git a/local/modules/modules/Colissimo/Config/prices.json b/local/modules/modules/Colissimo/Config/prices.json deleted file mode 100644 index 53eacc3b..00000000 --- a/local/modules/modules/Colissimo/Config/prices.json +++ /dev/null @@ -1,64 +0,0 @@ -{"1": { - "_info": "area 1 : France", - "slices": { - "0.25": 5.23, - "0.5": 6.13, - "0.75": 6.89, - "1": 7.51, - "2": 8.50, - "5": 10.93, - "10": 15.68, - "30": 23.28 - } -}, "2": { - "_info": "area 2 : A Zone - Union Europ\u00e9enne et Suisse", - "slices": { - "0.5": 11.54, - "1": 14.11, - "2": 15.68, - "5": 20.14, - "10": 33.25, - "20": 55.10, - "30": 55.10 - } -}, "3": { - "_info": "area 3 : B Zone - Pays de l\u2019Europe de l\u2019Est (hors Union Europ\u00e9enne et Russie), Norv\u00e8ge, Maghreb", - "slices": { - "0.5": 15.39, - "1": 18.38, - "2": 20.00, - "5": 25.65, - "10": 42.75, - "20": 66.50 - } -}, "4": { - "_info": "area 4 : C Zone - Autres destinations", - "slices": { - "0.5": 22.52, - "1": 24.99, - "2": 34.30, - "5": 50.35, - "10": 95.00, - "20": 152.00 - } -}, "5": { - "_info": "area 5 : France OM1", - "slices": { - "0.5": 8.69, - "1": 13.16, - "2": 17.96, - "5": 26.60, - "10": 42.75, - "30": 95.95 - } -}, "6": { - "_info": "area 6 : France OM2", - "slices": { - "0.5": 10.40, - "1": 15.72, - "2": 27.74, - "5": 46.08, - "10": 90.25, - "30": 237.50 - } -}} diff --git a/local/modules/modules/Colissimo/Config/routing.xml b/local/modules/modules/Colissimo/Config/routing.xml deleted file mode 100644 index 4edcf64d..00000000 --- a/local/modules/modules/Colissimo/Config/routing.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - Colissimo\Controller\EditPrices::editprices - - - - Colissimo\Controller\FreeShipping::set - - - - Colissimo\Controller\Export::exportAction - - - - Colissimo\Controller\Configuration::editConfiguration - - diff --git a/local/modules/modules/Colissimo/Config/thelia.sql b/local/modules/modules/Colissimo/Config/thelia.sql deleted file mode 100644 index d44ef9fa..00000000 --- a/local/modules/modules/Colissimo/Config/thelia.sql +++ /dev/null @@ -1,32 +0,0 @@ -# This is a fix for InnoDB in MySQL >= 4.1.x -# It "suspends judgement" for fkey relationships until are tables are set. -SET FOREIGN_KEY_CHECKS = 0; - --- --------------------------------------------------------------------- --- Mail templates for colissimo --- --------------------------------------------------------------------- - --- First, delete existing entries -SET @var := 0; -SELECT @var := `id` FROM `message` WHERE name="mail_colissimo"; -DELETE FROM `message` WHERE `id`=@var; --- Try if ON DELETE constraint isn't set -DELETE FROM `message_i18n` WHERE `id`=@var; - --- Then add new entries -SELECT @max := MAX(`id`) FROM `message`; -SET @max := @max+1; --- insert message -INSERT INTO `message` (`id`, `name`, `secured`) VALUES -(@max, -'mail_colissimo', -'0' -); - --- and template fr_FR -INSERT INTO `message_i18n` (`id`, `locale`, `title`, `subject`, `text_message`, `html_message`) VALUES -(@max, 'en_US', 'Colissimo shipping message', 'Your order {$order_ref} has been shipped', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\nDear {$FIRSTNAME} {$LASTNAME},\r\n{/loop}\r\nThank you for your order on our online store {config key="store_name"}.\r\nYour order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\r\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.\r\nYou can use this tracking number to get your parcel in your local La Poste office. If don''t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.\r\nFeel free to contact us for any forther information\r\nBest Regards.', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n

    Dear {$FIRSTNAME} {$LASTNAME},

    \r\n{/loop}\r\n

    Thank you for your order on our online store {config key="store_name"}.

    \r\n

    Your order {$order_ref} dated {format_date date=$order_date} has been shipped on {format_date date=$update_date}.\r\nThe tracking number for this delivery is {$package}. Please check the La Poste website for tracking your parcel: www.coliposte.net.

    \r\n

    You can use this tracking number to get your parcel in your local La Poste office. If don''t get an advice in your mailbox after two working days, claim your parcel at your local La Poste office, using this tracking number.

    \r\n

    Feel free to contact us for any forther information

    \r\n

    Best Regards.

    '), -(@max, 'fr_FR', 'Message d''expédition de colissimo', 'Suivi colissimo commande : {$order_ref}', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n{$LASTNAME} {$FIRSTNAME},\r\n{/loop}\r\nNous vous remercions de votre commande sur notre site {config key="store_name"}\r\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\r\nSon numéro de suivi est le suivant : {$package}\r\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\r\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\r\nATTENTION ! Si vous ne trouvez pas l''avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n''hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\r\nNous restons à votre disposition pour toute information complémentaire.\r\nCordialement', '{loop type="customer" name="customer.order" current="false" id="$customer_id" backend_context="1"}\r\n{$LASTNAME} {$FIRSTNAME},\r\n{/loop}\r\nNous vous remercions de votre commande sur notre site {config key="store_name"}\r\nUn colis concernant votre commande {$order_ref} du {format_date date=$order_date} a quitté nos entrepôts pour être pris en charge par La Poste le {format_date date=$update_date}.\r\nSon numéro de suivi est le suivant : {$package}\r\nIl vous permet de suivre votre colis en ligne sur le site de La Poste : www.coliposte.net\r\nIl vous sera, par ailleurs, très utile si vous étiez absent au moment de la livraison de votre colis : en fournissant ce numéro de Colissimo Suivi, vous pourrez retirer votre colis dans le bureau de Poste le plus proche.\r\nATTENTION ! Si vous ne trouvez pas l''avis de passage normalement déposé dans votre boîte aux lettres au bout de 48 Heures jours ouvrables, n''hésitez pas à aller le réclamer à votre bureau de Poste, muni de votre numéro de Colissimo Suivi.\r\nNous restons à votre disposition pour toute information complémentaire.\r\nCordialement'); - -# This restores the fkey checks, after having unset them earlier -SET FOREIGN_KEY_CHECKS = 1; \ No newline at end of file diff --git a/local/modules/modules/Colissimo/Controller/Configuration.php b/local/modules/modules/Colissimo/Controller/Configuration.php deleted file mode 100644 index 52f99df8..00000000 --- a/local/modules/modules/Colissimo/Controller/Configuration.php +++ /dev/null @@ -1,77 +0,0 @@ - - */ -class Configuration extends BaseAdminController -{ - public function editConfiguration() - { - if (null !== $response = $this->checkAuth( - AdminResources::MODULE, - [Colissimo::DOMAIN_NAME], - AccessManager::UPDATE - )) { - return $response; - } - - $form = $this->createForm('colissimo.configuration'); - $error_message = null; - - try { - $validateForm = $this->validateForm($form); - $data = $validateForm->getData(); - - Colissimo::setConfigValue( - ColissimoConfigValue::ENABLED, - is_bool($data["enabled"]) ? (int) ($data["enabled"]) : $data["enabled"] - ); - - return $this->redirectToConfigurationPage(); - - } catch (FormValidationException $e) { - $error_message = $this->createStandardFormValidationErrorMessage($e); - } - - if (null !== $error_message) { - $this->setupFormErrorContext( - 'configuration', - $error_message, - $form - ); - $response = $this->render("module-configure", ['module_code' => 'Colissimo']); - } - return $response; - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/modules/modules/Colissimo/Controller/EditPrices.php b/local/modules/modules/Colissimo/Controller/EditPrices.php deleted file mode 100644 index a4ed5083..00000000 --- a/local/modules/modules/Colissimo/Controller/EditPrices.php +++ /dev/null @@ -1,84 +0,0 @@ - - */ -class EditPrices extends BaseAdminController -{ - public function editprices() - { - // Get data & treat - $post = $this->getRequest(); - $operation = $post->get('operation'); - $area = $post->get('area'); - $weight = $post->get('weight'); - $price = $post->get('price'); - - if (preg_match("#^add|delete$#", $operation) && - preg_match("#^\d+$#", $area) && - preg_match("#^\d+\.?\d*$#", $weight) - ) { - // check if area exists in db - $exists = AreaQuery::create() - ->findPK($area); - if ($exists !== null) { - - if (null !== $data = Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null)) { - $json_data = json_decode( - $data, - true - ); - } - if ((float) $weight > 0 && $operation == "add" - && preg_match("#\d+\.?\d*#", $price)) { - $json_data[$area]['slices'][$weight] = $price; - } elseif ($operation == "delete") { - if (isset($json_data[$area]['slices'][$weight])) { - unset($json_data[$area]['slices'][$weight]); - } - } else { - throw new \Exception("Weight must be superior to 0"); - } - ksort($json_data[$area]['slices']); - - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, json_encode($json_data)); - - } else { - throw new \Exception("Area not found"); - } - } else { - throw new \ErrorException("Arguments are missing or invalid"); - } - - return $this->redirectToConfigurationPage(); - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/modules/modules/Colissimo/Controller/Export.php b/local/modules/modules/Colissimo/Controller/Export.php deleted file mode 100644 index ca82a68e..00000000 --- a/local/modules/modules/Colissimo/Controller/Export.php +++ /dev/null @@ -1,166 +0,0 @@ - - */ -class Export extends BaseAdminController -{ - const DEFAULT_PHONE = "0100000000"; - const DEFAULT_CELLPHONE = "0600000000"; - - public function exportAction() - { - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('Colissimo'), AccessManager::UPDATE)) { - return $response; - } - - $form = new FormExport($this->getRequest()); - - try { - $exportForm = $this->validateForm($form); - - // Get new status - $status_id = $exportForm->get('status_id')->getData(); - $status = OrderStatusQuery::create() - ->filterByCode($status_id) - ->findOne(); - - // Get Colissimo orders - $orders = ColissimoQuery::getOrders()->find(); - - $export = ""; - $store_name = ConfigQuery::getStoreName(); - - /** @var $order \Thelia\Model\Order */ - foreach ($orders as $order) { - - $value = $exportForm->get('order_'.$order->getId())->getData(); - - if ($value) { - - // Get order information - $customer = $order->getCustomer(); - $locale = $order->getLang()->getLocale(); - $address = $order->getOrderAddressRelatedByDeliveryOrderAddressId(); - $country = CountryQuery::create()->findPk($address->getCountryId()); - $country->setLocale($locale); - $customerTitle = CustomerTitleQuery::create()->findPk($address->getCustomerTitleId()); - $customerTitle->setLocale($locale); - $weight = $exportForm->get('order_weight_'.$order->getId())->getData(); - - if ($weight == 0) { - /** @var \Thelia\Model\OrderProduct $product */ - foreach ($order->getOrderProducts() as $product) { - $weight += (double)$product->getWeight(); - } - } - - /** - * Get user's phone & cellphone - * First get invoice address phone, - * If empty, try to get default address' phone. - * If still empty, set default value - */ - $phone = $address->getPhone(); - if (empty($phone)) { - $phone = $customer->getDefaultAddress()->getPhone(); - - if (empty($phone)) { - $phone = self::DEFAULT_PHONE; - } - } - - // Cellphone - $cellphone = $customer->getDefaultAddress()->getCellphone(); - - if (empty($cellphone)) { - $cellphone = $customer->getDefaultAddress()->getCellphone(); - - if (empty($cellphone)) { - $cellphone = self::DEFAULT_CELLPHONE; - } - } - - - $export .= - "\"".$order->getRef() - ."\";\"".$address->getLastname() - ."\";\"".$address->getFirstname() - ."\";\"".$address->getAddress1() - ."\";\"".$address->getAddress2() - ."\";\"".$address->getAddress3() - ."\";\"".$address->getZipcode() - ."\";\"".$address->getCity() - ."\";\"".$country->getIsoalpha2() - ."\";\"".$phone - ."\";\"".$cellphone - ."\";\"".$weight - ."\";\"".$customer->getEmail() - ."\";\"\";\"".$store_name - ."\";\"DOM\";\r\n"; - - if ($status) { - $event = new OrderEvent($order); - $event->setStatus($status->getId()); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event); - } - } - } - - return Response::create( - utf8_decode($export), - 200, - array( - "Content-Encoding"=>"ISO-8889-1", - "Content-Type"=>"application/csv-tab-delimited-table", - "Content-disposition"=>"filename=export.csv" - ) - ); - - } catch (FormValidationException $e) { - $this->setupFormErrorContext( - Translator::getInstance()->trans("colissimo expeditor export", [], Colissimo::DOMAIN_NAME), - $e->getMessage(), - $form, - $e - ); - - return $this->render( - "module-configure", - array( - "module_code" => "Colissimo", - ) - ); - } - } -} diff --git a/local/modules/modules/Colissimo/Controller/FreeShipping.php b/local/modules/modules/Colissimo/Controller/FreeShipping.php deleted file mode 100644 index 10d46e6f..00000000 --- a/local/modules/modules/Colissimo/Controller/FreeShipping.php +++ /dev/null @@ -1,62 +0,0 @@ - - */ -class FreeShipping extends BaseAdminController -{ - public function set() - { - $response = $this->checkAuth(AdminResources::MODULE, [Colissimo::DOMAIN_NAME], AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - $form = $this->createForm('colissimo.freeshipping.form'); - - - try { - $validateForm = $this->validateForm($form); - $data = $validateForm->getData(); - - Colissimo::setConfigValue(ColissimoConfigValue::FREE_SHIPPING, (int) ($data["freeshipping"])); - return $this->redirectToConfigurationPage(); - - } catch (\Exception $e) { - $response = JsonResponse::create(array("error"=>$e->getMessage()), 500); - } - - return $response; - } - - /** - * Redirect to the configuration page - */ - protected function redirectToConfigurationPage() - { - return RedirectResponse::create(URL::getInstance()->absoluteUrl('/admin/module/Colissimo')); - } -} diff --git a/local/modules/modules/Colissimo/EventListener/AreaDeletedListener.php b/local/modules/modules/Colissimo/EventListener/AreaDeletedListener.php deleted file mode 100644 index c1eb3e41..00000000 --- a/local/modules/modules/Colissimo/EventListener/AreaDeletedListener.php +++ /dev/null @@ -1,53 +0,0 @@ - - */ -class AreaDeletedListener implements EventSubscriberInterface -{ - /** - * @param AreaDeleteEvent $event - */ - public function updateConfig(AreaDeleteEvent $event) - { - if (null !== $data = Colissimo::getConfigValue(ColissimoConfigValue::PRICES, null)) { - $areaId = $event->getAreaId(); - $json_data = json_decode($data, true); - unset($json_data[$areaId]); - - Colissimo::setConfigValue(ColissimoConfigValue::PRICES, json_encode($json_data, true)); - } - } - - /** - * @return array - */ - public static function getSubscribedEvents() - { - return [ - TheliaEvents::AREA_DELETE => [ - 'updateConfig', 128 - ] - ]; - } -} diff --git a/local/modules/modules/Colissimo/Form/Configuration.php b/local/modules/modules/Colissimo/Form/Configuration.php deleted file mode 100644 index bc9c58b3..00000000 --- a/local/modules/modules/Colissimo/Form/Configuration.php +++ /dev/null @@ -1,59 +0,0 @@ - - */ -class Configuration extends BaseForm -{ - - protected function buildForm() - { - $this->formBuilder - ->add( - "enabled", - "checkbox", - array( - "label" => "Enabled", - "label_attr" => [ - "for" => "enabled", - "help" => Translator::getInstance()->trans( - 'Check if you want to activate Colissimo', - [], - Colissimo::DOMAIN_NAME - ) - ], - "required" => false, - "constraints" => array( - ), - "value" => Colissimo::getConfigValue(ColissimoConfigValue::ENABLED, 1), - ) - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimo_enable"; - } -} diff --git a/local/modules/modules/Colissimo/Form/Export.php b/local/modules/modules/Colissimo/Form/Export.php deleted file mode 100644 index 47c8fddf..00000000 --- a/local/modules/modules/Colissimo/Form/Export.php +++ /dev/null @@ -1,122 +0,0 @@ - - */ -class Export extends BaseForm -{ - - /** - * - * in this function you add all the fields you need for your Form. - * Form this you have to call add method on $this->formBuilder attribute : - * - * $this->formBuilder->add("name", "text") - * ->add("email", "email", array( - * "attr" => array( - * "class" => "field" - * ), - * "label" => "email", - * "constraints" => array( - * new \Symfony\Component\Validator\Constraints\NotBlank() - * ) - * ) - * ) - * ->add('age', 'integer'); - * - * @return null - */ - protected function buildForm() - { - $orders = ColissimoQuery::getOrders() - ->find(); - - $this->formBuilder - ->add( - 'status_id', - 'text', - [ - 'constraints' => [ - new NotBlank(), - new Callback( - array("methods" => array(array($this, "verifyValue"))) - ) - ], - 'label' => Translator::getInstance()->trans( - 'Modify status export after export', - [], - Colissimo::DOMAIN_NAME - ), - 'label_attr' => [ - 'for' => 'status_id' - ] - ] - ); - - /** @var \Thelia\Model\Order $order */ - foreach ($orders as $order) { - $this->formBuilder - ->add( - "order_".$order->getId(), - "checkbox", - array( - 'label'=>$order->getRef(), - 'label_attr'=>array( - 'for'=>'export_'.$order->getId() - ) - ) - ) - ->add( - "order_nb_pkg_".$order->getId(), - 'number' - ) - ->add( - "order_weight_".$order->getId(), - 'number' - ); - } - } - - public function verifyValue($value, ExecutionContextInterface $context) - { - if (!preg_match("#^nochange|processing|sent$#", $value)) { - $context->addViolation( - Translator::getInstance()->trans( - 'select a valid status', - [], - Colissimo::DOMAIN_NAME - ) - ); - } - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimo_export"; - } -} diff --git a/local/modules/modules/Colissimo/Form/FreeShipping.php b/local/modules/modules/Colissimo/Form/FreeShipping.php deleted file mode 100644 index baea56e0..00000000 --- a/local/modules/modules/Colissimo/Form/FreeShipping.php +++ /dev/null @@ -1,62 +0,0 @@ -formBuilder attribute : - * - * $this->formBuilder->add("name", "text") - * ->add("email", "email", array( - * "attr" => array( - * "class" => "field" - * ), - * "label" => "email", - * "constraints" => array( - * new \Symfony\Component\Validator\Constraints\NotBlank() - * ) - * ) - * ) - * ->add('age', 'integer'); - * - * @return null - */ - protected function buildForm() - { - $this->formBuilder - ->add( - "freeshipping", - "checkbox", - array( - "label" => Translator::getInstance()->trans("Activate free shipping: ", [], Colissimo::DOMAIN_NAME), - "value" => Colissimo::getConfigValue(ColissimoConfigValue::FREE_SHIPPING, false), - ) - ); - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "colissimofreeshipping"; - } -} diff --git a/local/modules/modules/Colissimo/Hook/HookManager.php b/local/modules/modules/Colissimo/Hook/HookManager.php deleted file mode 100644 index 7c8b15bb..00000000 --- a/local/modules/modules/Colissimo/Hook/HookManager.php +++ /dev/null @@ -1,31 +0,0 @@ - - */ -class HookManager extends BaseHook -{ - public function onModuleConfiguration(HookRenderEvent $event) - { - $module_id = self::getModule()->getModuleId(); - - $event->add($this->render("module_configuration.html", ['module_id' => $module_id])); - } -} diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/de_DE.php b/local/modules/modules/Colissimo/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 10ed342f..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,25 +0,0 @@ - '*Wenn Sie diese Option auswählen, sind die exportierten Bestellungen auf dieser Seite nicht mehr verfügbar', - 'Actions' => 'Aktionen', - 'An error occured' => 'Ein Fehler ist aufgetreten', - 'Area : ' => 'Bereich : ', - 'Cancel' => 'Abbrechen', - 'Change orders status after export' => 'Status der Bestellung nach dem Export ändern', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo Modul ermöglicht, Ihre Produkte mit La Poste weltweit zu versenden.', - 'Create' => 'Erstellen', - 'Date' => 'Datum', - 'Delete' => 'Löschen', - 'Do not change' => 'Nicht ändern', - 'Edit' => 'Ändern', - 'Export' => 'Export', - 'Please change the access rights' => 'Bitte ändern Sie die Zugriffsrechte', - 'Price (€)' => 'Preis (€)', - 'Processing' => 'Bearbeitung', - 'REF' => 'REF', - 'Sent' => 'Gesendet', - 'There is currently not orders to export' => 'Es gibt derzeit keine Bestellungen, die exportiert werden können', - 'Total taxed amount' => 'Gesamter besteuerter Betrag', - 'Weight up to ... (kg)' => 'Gewicht bis zu ... (kg)', -]; diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/en_US.php b/local/modules/modules/Colissimo/I18n/backOffice/default/en_US.php deleted file mode 100644 index 0d48057a..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,36 +0,0 @@ - '*If you choose this option, the exported orders would not be available on this page anymore', - 'Actions' => 'Actions', - 'An error occured' => 'An error occured', - 'Area : ' => 'Area : ', - 'Cancel' => 'Cancel', - 'Change orders status after export' => 'Change orders status after export', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo Module allows to send your products all around the world with La Poste.', - 'Create' => 'Create', - 'Create a new price slice' => 'Create a new price slice', - 'Create a price slice' => 'Create a price slice', - 'Date' => 'Date', - 'Delete' => 'Delete', - 'Delete a price slice' => 'Delete a price slice', - 'Delete this price slice' => 'Delete this price slice', - 'Do not change' => 'Do not change', - 'Do you really want to delete this slice ?' => 'Do you really want to delete this slice ?', - 'Edit' => 'Edit', - 'Edit a price slice' => 'Edit a price slice', - 'Edit this price slice' => 'Edit this price slice', - 'Export' => 'Export', - 'Export expeditor inet file' => 'Export expeditor inet file', - 'Please change the access rights' => 'Please change the access rights', - 'Price (€)' => 'Price (€)', - 'Price slices' => 'Price slices', - 'Processing' => 'Processing', - 'REF' => 'REF', - 'Sent' => 'Sent', - 'There is currently not orders to export' => 'There is currently no orders to export', - 'Total taxed amount' => 'Total taxed amount', - 'Weight up to ... (kg)' => 'Weight up to ... (kg)', - 'Number of packages' => 'Number of packages', - 'Packages weight' => 'Packages weight' -); diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/fr_FR.php b/local/modules/modules/Colissimo/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index d7237509..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,37 +0,0 @@ - '* Si vous choisissez cette option, les commandes exportées ne seront plus affichée sur cette page.', - 'Actions' => 'Actions', - 'An error occured' => 'Une erreur est survenue', - 'Area : ' => 'Zone de livraison : ', - 'Cancel' => 'Annuler', - 'Change orders status after export' => 'Modification du statut des commande après l\'export', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo vous permet d’expédier vos colis dans le monde entier avec La Poste', - 'Create' => 'Créer', - 'Create a new price slice' => 'Créer une nouvelle tranche de prix', - 'Create a price slice' => 'Créer une tranche de prix', - 'Customer' => 'Client', - 'Date' => 'Date', - 'Delete' => 'Supprimer', - 'Delete a price slice' => 'Supprimer une tranche de prix', - 'Delete this price slice' => 'Supprimer cette tranche de prix', - 'Do not change' => 'Ne pas modifier', - 'Do you really want to delete this slice ?' => 'Confirmez-vous la suppression de cette tranche de prix', - 'Edit' => 'Modifier', - 'Edit a price slice' => 'Modifier une tranche de prix', - 'Edit this price slice' => 'Modifier cette tranche de prix', - 'Export' => 'Export', - 'Export expeditor inet file' => 'Exporter le fichier Expeditor INET', - 'Number of packages' => 'Nombre de colis', - 'Packages weight' => 'Poids des colis', - 'Please change the access rights' => 'Merci de modifier les droits d\'accès', - 'Price (€)' => 'Prix (€)', - 'Price slices' => 'Prix et poids', - 'Processing' => 'Traitement', - 'REF' => 'REF', - 'Sent' => 'Envoyée', - 'There is currently not orders to export' => 'Il n\'y a pas de commande à exporter pour le moment', - 'Total taxed amount' => 'Total TTC', - 'Weight up to ... (kg)' => 'Jusqu\'au poids (Kg)', -]; diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/it_IT.php b/local/modules/modules/Colissimo/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 58e711dc..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Azioni', - 'Cancel' => 'Annulla', - 'Create' => 'Creare', - 'Date' => 'Data', - 'Delete' => 'Cancellare', - 'Edit' => 'Modifica', - 'Export' => 'Esporta', - 'Number of packages' => 'Numero di pacchetti', - 'Packages weight' => 'Peso pacchi', -]; diff --git a/local/modules/modules/Colissimo/I18n/backOffice/default/tr_TR.php b/local/modules/modules/Colissimo/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index a777927b..00000000 --- a/local/modules/modules/Colissimo/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,34 +0,0 @@ - '* Bu seçeneği seçerseniz, ihracat siparişleri artık bu sayfadaki müsait olmaz', - 'Actions' => 'Eylemler', - 'An error occured' => 'Bir hata meydana geldi', - 'Area : ' => 'Alanı: ', - 'Cancel' => 'Vazgeç', - 'Change orders status after export' => 'İhracat sonra sipariş durumunu değiştir', - 'Colissimo Module allows to send your products all around the world with La Poste.' => 'Colissimo modülü sağlar ürünlerinizi göndermek için La Poste ile dünyanın her yerinden.', - 'Create' => 'Oluştur', - 'Create a new price slice' => 'Yeni fiyat dilimi oluşturmak', - 'Create a price slice' => 'Bir fiyat dilim oluşturma', - 'Date' => 'Tarih', - 'Delete' => 'sil', - 'Delete a price slice' => 'Bir fiyat dilim silmek', - 'Delete this price slice' => 'Bu fiyat dilim silmek', - 'Do not change' => 'Değiştirme', - 'Do you really want to delete this slice ?' => 'Gerçekten bu dosyayı silmek istiyor musunuz ?', - 'Edit' => 'Düzenle', - 'Edit a price slice' => 'Bir fiyat dilim Düzenle', - 'Edit this price slice' => 'Bu fiyat dilim Düzenle', - 'Export' => 'Dışa aktarma', - 'Export expeditor inet file' => 'Expeditor inet dosyası dışa aktarma', - 'Please change the access rights' => 'Lütfen erişim haklarını Değiştir', - 'Price (€)' => 'Fiyat (TL)', - 'Price slices' => 'Fiyat dilimleri', - 'Processing' => 'İşlem devam ediyor', - 'REF' => 'ÜRÜN KODU', - 'Sent' => 'Gönder', - 'There is currently not orders to export' => 'Şu anda hiçbir emir vermek için', - 'Total taxed amount' => 'Toplam Kdvtutarı', - 'Weight up to ... (kg)' => 'Fazla kilo... (kg)', -]; diff --git a/local/modules/modules/Colissimo/I18n/de_DE.php b/local/modules/modules/Colissimo/I18n/de_DE.php deleted file mode 100644 index 5198cfbd..00000000 --- a/local/modules/modules/Colissimo/I18n/de_DE.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Kostenlose Lieferung aktivieren: ', - 'Can\'t read Config directory' => 'Config-Verzeichnis kann nicht gelesen werden', - 'Can\'t read file' => 'Datei kann nicht gelesen werden', - 'Can\'t write Config directory' => 'Config-Verzeichnis kann nicht beschrieben werden', - 'Can\'t write file' => 'Datei kann nicht geschrieben werden', - 'Colissimo delivery unavailable for the delivery country' => 'Eine Lieferung mit Colissimo ist für das Land nicht verfügbar', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Eine Lieferung mit Colissimo ist für Warenkörbe mit diesem Gewicht (%weight kg) nicht verfügbar', - 'Modify status export after export' => 'Status der Bestellung nach dem Export ändern', - 'colissimo expeditor export' => 'Colissimo expeditor export', - 'select a valid status' => 'Wählen Sie einen gültigen Bestellungsstatus aus', -]; diff --git a/local/modules/modules/Colissimo/I18n/en_US.php b/local/modules/modules/Colissimo/I18n/en_US.php deleted file mode 100644 index c060ae29..00000000 --- a/local/modules/modules/Colissimo/I18n/en_US.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Activate free shipping: ', - 'Can\'t read Config directory' => 'Can\'t read Config directory', - 'Can\'t read file' => 'Can\'t read file', - 'Can\'t write Config directory' => 'Can\'t write Config directory', - 'Can\'t write file' => 'Can\'t write file', - 'Colissimo delivery unavailable for the delivery country' => 'Colissimo delivery unavailable for the delivery country', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Colissimo delivery unavailable for this cart weight (%weight kg)', - 'Modify status export after export' => 'Change orders status after export', - 'colissimo expeditor export' => 'Colissimo Expeditor export', - 'select a valid status' => 'Select a valid order status', -); diff --git a/local/modules/modules/Colissimo/I18n/fr_FR.php b/local/modules/modules/Colissimo/I18n/fr_FR.php deleted file mode 100644 index 92634b2c..00000000 --- a/local/modules/modules/Colissimo/I18n/fr_FR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Activer la livraison offerte: ', - 'Can\'t read Config directory' => 'Le dossier Config ne peut être lu', - 'Can\'t read file' => 'Le fichier suivant ne peut être lu', - 'Can\'t write Config directory' => 'Le dossier Config ne peut être écrit', - 'Can\'t write file' => 'Le fichier suivant ne peut être écrit', - 'Colissimo delivery unavailable for the delivery country' => 'La livraison par Colissimo n\'est pas disponible dans ce pays', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'La livraison par Colissimo n\'est pas disponible pour un panier de %weight Kg', - 'Modify status export after export' => 'Modification du statut des commandes après l\'export', - 'colissimo expeditor export' => 'Export pour le logiciel Expeditor', - 'select a valid status' => 'Choisissez un statut de commande valide.', -]; diff --git a/local/modules/modules/Colissimo/I18n/tr_TR.php b/local/modules/modules/Colissimo/I18n/tr_TR.php deleted file mode 100644 index 4d4ef3c5..00000000 --- a/local/modules/modules/Colissimo/I18n/tr_TR.php +++ /dev/null @@ -1,14 +0,0 @@ - 'Ücretsiz nakliye etkinleştirmek için: ', - 'Can\'t read Config directory' => 'Yapılandırma dizini okunamıyor', - 'Can\'t read file' => 'Dosyayı okuyamıyor', - 'Can\'t write Config directory' => 'Dosyayı okuyamıyor', - 'Can\'t write file' => 'Dosyaya yazılamıyor', - 'Colissimo delivery unavailable for the delivery country' => 'Bu Teslimat Bu ülke için kullanılamaz Colissimo teslim', - 'Colissimo delivery unavailable for this cart weight (%weight kg)' => 'Colissimo teslimat için bu sepeti ağırlık (%weight kg) kullanılamaz', - 'Modify status export after export' => 'İhracat sonra sipariş durumunu değiştir', - 'colissimo expeditor export' => 'Colissimo Expeditor verme', - 'select a valid status' => 'Geçerli sipariş durumunu seçin', -]; diff --git a/local/modules/modules/Colissimo/LICENSE.txt b/local/modules/modules/Colissimo/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/Colissimo/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/Colissimo/Listener/SendMail.php b/local/modules/modules/Colissimo/Listener/SendMail.php deleted file mode 100644 index e9db80ae..00000000 --- a/local/modules/modules/Colissimo/Listener/SendMail.php +++ /dev/null @@ -1,104 +0,0 @@ - - */ -class SendMail implements EventSubscriberInterface -{ - - protected $parser; - - protected $mailer; - - public function __construct(ParserInterface $parser, MailerFactory $mailer) - { - $this->parser = $parser; - $this->mailer = $mailer; - } - - public function updateStatus(OrderEvent $event) - { - $order = $event->getOrder(); - $colissimo = new Colissimo(); - - if ($order->isSent() && $order->getDeliveryModuleId() == $colissimo->getModuleModel()->getId()) { - $contact_email = ConfigQuery::getStoreEmail(); - - if ($contact_email) { - $order = $event->getOrder(); - $customer = $order->getCustomer(); - - $this->mailer->sendEmailToCustomer( - 'mail_colissimo', - $customer, - [ - 'customer_id' => $customer->getId(), - 'order_ref' => $order->getRef(), - 'order_date' => $order->getCreatedAt(), - 'update_date' => $order->getUpdatedAt(), - 'package' => $order->getDeliveryRef() - ] - ); - - Tlog::getInstance()->debug("Colissimo shipping message sent to customer ".$customer->getEmail()); - } else { - $customer = $order->getCustomer(); - Tlog::getInstance()->debug("Colissimo shipping message no contact email customer_id", $customer->getId()); - } - } - } - - /** - * Returns an array of event names this subscriber wants to listen to. - * - * The array keys are event names and the value can be: - * - * * The method name to call (priority defaults to 0) - * * An array composed of the method name to call and the priority - * * An array of arrays composed of the method names to call and respective - * priorities, or 0 if unset - * - * For instance: - * - * * array('eventName' => 'methodName') - * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) - * - * @return array The event names to listen to - * - * @api - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("updateStatus", 128) - ); - } -} diff --git a/local/modules/modules/Colissimo/Loop/CheckRightsLoop.php b/local/modules/modules/Colissimo/Loop/CheckRightsLoop.php deleted file mode 100644 index d655f1ad..00000000 --- a/local/modules/modules/Colissimo/Loop/CheckRightsLoop.php +++ /dev/null @@ -1,100 +0,0 @@ - - */ -class CheckRightsLoop extends BaseLoop implements ArraySearchLoopInterface -{ - protected function getArgDefinitions() - { - return new ArgumentCollection(); - } - - public function buildArray() - { - $ret = array(); - $dir = __DIR__."/../Config/"; - if (!is_readable($dir)) { - - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't read Config directory", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"" - ); - } - if (!is_writable($dir)) { - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't write Config directory", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"" - ); - - } - if ($handle = opendir($dir)) { - while (false !== ($file = readdir($handle))) { - if (strlen($file) > 5 && substr($file, -5) === ".json") { - if (!is_readable($dir.$file)) { - - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't read file", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"Colissimo/Config/".$file - ); - } - if (!is_writable($dir.$file)) { - $ret[] = array( - "ERRMES"=>Translator::getInstance()->trans( - "Can't write file", - [], - Colissimo::DOMAIN_NAME - ), - "ERRFILE"=>"Colissimo/Config/".$file - ); - - } - } - } - } - return $ret; - } - public function parseResults(LoopResult $loopResult) - { - foreach ($loopResult->getResultDataCollection() as $arr) { - $loopResultRow = new LoopResultRow(); - $loopResultRow->set("ERRMES", $arr["ERRMES"]) - ->set("ERRFILE", $arr["ERRFILE"]); - $loopResult->addRow($loopResultRow); - } - return $loopResult; - } -} diff --git a/local/modules/modules/Colissimo/Loop/NotSendLoop.php b/local/modules/modules/Colissimo/Loop/NotSendLoop.php deleted file mode 100644 index b504924e..00000000 --- a/local/modules/modules/Colissimo/Loop/NotSendLoop.php +++ /dev/null @@ -1,74 +0,0 @@ - - */ -class NotSendLoop extends Order -{ - /** - * - * define all args used in your loop - * - * - * example : - * - * public function getArgDefinitions() - * { - * return new ArgumentCollection( - * Argument::createIntListTypeArgument('id'), - * new Argument( - * 'ref', - * new TypeCollection( - * new Type\AlphaNumStringListType() - * ) - * ), - * Argument::createIntListTypeArgument('category'), - * Argument::createBooleanTypeArgument('new'), - * Argument::createBooleanTypeArgument('promo'), - * Argument::createFloatTypeArgument('min_price'), - * Argument::createFloatTypeArgument('max_price'), - * Argument::createIntTypeArgument('min_stock'), - * Argument::createFloatTypeArgument('min_weight'), - * Argument::createFloatTypeArgument('max_weight'), - * Argument::createBooleanTypeArgument('current'), - * - * ); - * } - * - * @return \Thelia\Core\Template\Loop\Argument\ArgumentCollection - */ - public function getArgDefinitions() - { - return new ArgumentCollection(Argument::createBooleanTypeArgument('with_prev_next_info', false)); - } - - /** - * this method returns a Propel ModelCriteria - * - * @return \Propel\Runtime\ActiveQuery\ModelCriteria - */ - public function buildModelCriteria() - { - return ColissimoQuery::getOrders(); - } -} diff --git a/local/modules/modules/Colissimo/Loop/Price.php b/local/modules/modules/Colissimo/Loop/Price.php deleted file mode 100644 index 014f5eef..00000000 --- a/local/modules/modules/Colissimo/Loop/Price.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -class Price extends BaseLoop implements ArraySearchLoopInterface -{ - /* set countable to false since we need to preserve keys */ - protected $countable = false; - - /** - * @return ArgumentCollection - */ - protected function getArgDefinitions() - { - return new ArgumentCollection( - Argument::createIntTypeArgument('area', null, true) - ); - } - - public function buildArray() - { - $area = $this->getArea(); - $prices = Colissimo::getPrices(); - - if (!isset($prices[$area]) || !isset($prices[$area]["slices"])) { - return array(); - } - - $areaPrices = $prices[$area]["slices"]; - ksort($areaPrices); - - return $areaPrices; - } - - public function parseResults(LoopResult $loopResult) - { - foreach ($loopResult->getResultDataCollection() as $maxWeight => $price) { - $loopResultRow = new LoopResultRow(); - $loopResultRow->set("MAX_WEIGHT", $maxWeight) - ->set("PRICE", $price); - - $loopResult->addRow($loopResultRow); - } - return $loopResult; - } -} diff --git a/local/modules/modules/Colissimo/Model/ColissimoQuery.php b/local/modules/modules/Colissimo/Model/ColissimoQuery.php deleted file mode 100644 index 2fb634c7..00000000 --- a/local/modules/modules/Colissimo/Model/ColissimoQuery.php +++ /dev/null @@ -1,66 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Colissimo\Model; - -use Colissimo\Colissimo; -use Propel\Runtime\ActiveQuery\Criteria; -use Thelia\Model\OrderQuery; -use Thelia\Model\OrderStatus; -use Thelia\Model\OrderStatusQuery; - -/** - * Class ColissimoQuery - * @package Colissimo\Model - * @author Manuel Raynaud - */ -class ColissimoQuery -{ - /** - * @return OrderQuery - */ - public static function getOrders() - { - $status = OrderStatusQuery::create() - ->filterByCode( - array( - OrderStatus::CODE_PAID, - OrderStatus::CODE_PROCESSING, - ), - Criteria::IN - ) - ->find() - ->toArray("code"); - - $query = OrderQuery::create() - ->filterByDeliveryModuleId((new Colissimo())->getModuleModel()->getId()) - ->filterByStatusId( - array( - $status[OrderStatus::CODE_PAID]['Id'], - $status[OrderStatus::CODE_PROCESSING]['Id']), - Criteria::IN - ); - - return $query; - } -} diff --git a/local/modules/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php b/local/modules/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php deleted file mode 100644 index c481a36a..00000000 --- a/local/modules/modules/Colissimo/Model/Config/Base/ColissimoConfigValue.php +++ /dev/null @@ -1,25 +0,0 @@ - - */ -class ColissimoConfigValue -{ - const FREE_SHIPPING = "free_shipping"; - const PRICES = "prices"; - const ENABLED = "enabled"; -} diff --git a/local/modules/modules/Colissimo/Model/Config/ColissimoConfigValue.php b/local/modules/modules/Colissimo/Model/Config/ColissimoConfigValue.php deleted file mode 100644 index d0cb0be1..00000000 --- a/local/modules/modules/Colissimo/Model/Config/ColissimoConfigValue.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -class ColissimoConfigValue extends BaseColissimoConfigValue -{ -} diff --git a/local/modules/modules/Colissimo/THELIA_INET.FMT b/local/modules/modules/Colissimo/THELIA_INET.FMT deleted file mode 100644 index 97266648..00000000 --- a/local/modules/modules/Colissimo/THELIA_INET.FMT +++ /dev/null @@ -1,23 +0,0 @@ -[GENERAL] -DELIMITE=O -SEPARATEUR=59 -DELIMITEUR=34 -FINDELIGNE=CRLF -Unité poids=KG -[CHAMPS] -ReferenceExpedition=1 -NomDestinataire=2 -Prenom=3 -Adresse1=4 -Adresse2=5 -Adresse3=6 -CodePostal=7 -Commune=8 -CodePays=9 -Telephone=10 -Portable=11 -Poids=12 -Mail=13 -CodePointRetrait=14 -CodeProduit=15 -NomCommercialChargeur=16 diff --git a/local/modules/modules/Colissimo/composer.json b/local/modules/modules/Colissimo/composer.json deleted file mode 100644 index d84be8fd..00000000 --- a/local/modules/modules/Colissimo/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/colissimo-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Colissimo" - } -} diff --git a/local/modules/modules/Colissimo/documentation/TarifsAvril2013.pdf b/local/modules/modules/Colissimo/documentation/TarifsAvril2013.pdf deleted file mode 100644 index 886a9983..00000000 Binary files a/local/modules/modules/Colissimo/documentation/TarifsAvril2013.pdf and /dev/null differ diff --git a/local/modules/modules/Colissimo/documentation/readme.txt b/local/modules/modules/Colissimo/documentation/readme.txt deleted file mode 100644 index b673e196..00000000 --- a/local/modules/modules/Colissimo/documentation/readme.txt +++ /dev/null @@ -1,3 +0,0 @@ -Colissimo prices based on April 2013 pdf. -TarifsAvril2013.pdf is available in this module documentation folder. -You may update prices in Config/prices.json file. \ No newline at end of file diff --git a/local/modules/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html b/local/modules/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html deleted file mode 100644 index a51dac94..00000000 --- a/local/modules/modules/Colissimo/templates/backOffice/default/assets/js/module-configuration-js.html +++ /dev/null @@ -1,36 +0,0 @@ -{javascripts file="assets/js/bootstrap-switch/bootstrap-switch.js"} - -{/javascripts} - - \ No newline at end of file diff --git a/local/modules/modules/Colissimo/templates/backOffice/default/module_configuration.html b/local/modules/modules/Colissimo/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 3c495353..00000000 --- a/local/modules/modules/Colissimo/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,316 +0,0 @@ -
    - - {loop name="checkrights.colissimo" type="colissimo.check.rights"} -
    -

    {$ERRMES} {$ERRFILE} | {intl d='colissimo.bo.default' l="Please change the access rights"}.

    -
    - {/loop} -
    - -{elseloop rel="checkrights.colissimo"} - -
    -

    {intl d='colissimo.bo.default' l="Colissimo Module allows to send your products all around the world with La Poste."}

    -
    - - - -
    -
    -
    - {form name="colissimo.configuration"} - - {form_hidden_fields form=$form} - - {form_field form=$form field="enabled"} -
    - - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
    - {/form_field} - - - - {/form} -
    -
    -
    - -
    -
    -
    - - - -
    - - -
    - {form name="colissimo.export.form"} - {if $form_error}
    {$form_error_message}
    {/if} -
    - {form_hidden_fields} -
    - -
    - {intl d='colissimo.bo.default' l="Change orders status after export"} -
    - -
    - - {form_field field="status_id"} - - - - - - - - - - - - - {/form_field} -
    -   - - -
    -   - - -
    -   - - -
    - - {intl d='colissimo.ai' l="*If you choose this option, the exported orders would not be available on this page anymore"} -
    -
    - - - - - - - - - - - - - - - {loop name="colissimo.notsend.loop" type="colissimo.notsend.loop"} - - - - - - - - - - {/loop} - {elseloop rel="colissimo.notsend.loop"} - - - - {/elseloop} - -
    - {intl d='colissimo.ai' l="REF"} - - {intl d='colissimo.ai' l="Customer"} - - {intl d='colissimo.ai' l="Date"} - - {intl d='colissimo.ai' l="Total taxed amount"} - - {intl d='colissimo.ai' l="Number of packages"} - - {intl d='colissimo.ai' l="Packages weight"} - - {intl d='colissimo.ai' l="Export"} -
    - {$REF} - - {loop type='customer' name='colissimo.customer' id=$CUSTOMER current='false'} - {$LASTNAME} {$FIRSTNAME} - {/loop} - - {$CREATE_DATE|date_format} - - {$TOTAL_TAXED_AMOUNT} {loop name="list.socolissimo.getcurrency" type="currency" id=$CURRENCY}{$SYMBOL}{/loop} - - {form_field form=$form field="order_nb_pkg_"|cat:$ID} - - {/form_field} - - {form_field form=$form field="order_weight_"|cat:$ID} - - {/form_field} - - {form_field field="order_"|cat:$ID} - - {/form_field} -
    -
    -
    {intl d='colissimo.ai' l="There is currently not orders to export"}
    -
    - - {ifloop rel="colissimo.notsend.loop"} - - {/ifloop} -
    - {/form} -
    - -
    - - {assign var="isColissimoFreeShipping" value=0} - {form name="colissimo.freeshipping.form"} -
    -
    - {form_hidden_fields} - - {form_field field="freeshipping"} - - -
    - -
    - {/form_field} -
    - {/form} - -
    -
    -
    -
    -
    -{/elseloop} diff --git a/local/modules/modules/FreeOrder/Config/config.xml b/local/modules/modules/FreeOrder/Config/config.xml deleted file mode 100644 index 42d3733f..00000000 --- a/local/modules/modules/FreeOrder/Config/config.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/local/modules/modules/FreeOrder/Config/module.xml b/local/modules/modules/FreeOrder/Config/module.xml deleted file mode 100644 index 362cb923..00000000 --- a/local/modules/modules/FreeOrder/Config/module.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - FreeOrder\FreeOrder - - There's nothing to pay for this order - This is a pseudo-payment module for free orders. - - - Vous n'avez rien à payer pour cette commande - Un pseudo-module de paiement pour les commandes de montant nul - - - en_US - fr_FR - - 2.3.4 - - Franck Allimant - CQFDev - franck@cqfdev.fr - - payment - 2.2.0 - alpha - diff --git a/local/modules/modules/FreeOrder/FreeOrder.php b/local/modules/modules/FreeOrder/FreeOrder.php deleted file mode 100644 index b5d1df02..00000000 --- a/local/modules/modules/FreeOrder/FreeOrder.php +++ /dev/null @@ -1,40 +0,0 @@ -getCurrentOrderTotalAmount() == 0; - } - - public function pay(Order $order) - { - $event = new OrderEvent($order); - $event->setStatus(OrderStatusQuery::getPaidStatus()->getId()); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_UPDATE_STATUS, $event); - } - - public function manageStockOnCreation() - { - return false; - } -} diff --git a/local/modules/modules/FreeOrder/LICENSE.txt b/local/modules/modules/FreeOrder/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/FreeOrder/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/FreeOrder/Readme.md b/local/modules/modules/FreeOrder/Readme.md deleted file mode 100644 index 63333460..00000000 --- a/local/modules/modules/FreeOrder/Readme.md +++ /dev/null @@ -1,25 +0,0 @@ -# Free Order - -This module is used to terminate the order process when the order amount is 0,00. In this case, none of the traditional -payment modules applies. - -## Installation - -This module is bundled with Thelia standard distribution. - -### Manually - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is FreeOrder. -* Activate it in your thelia administration panel - -### Composer - -Add it in your main thelia composer.json file - -``` -composer require thelia/free-order-module:~1.0 -``` - -## Usage - -The module is displayed as needed in the payment modules list of the order-invoice page. \ No newline at end of file diff --git a/local/modules/modules/Front/Config/config.xml b/local/modules/modules/Front/Config/config.xml deleted file mode 100644 index dc19adf1..00000000 --- a/local/modules/modules/Front/Config/config.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - Front/Config/front.xml - - %kernel.cache_dir% - %kernel.debug% - - - - - - diff --git a/local/modules/modules/Front/Config/front.xml b/local/modules/modules/Front/Config/front.xml deleted file mode 100644 index bec4bdda..00000000 --- a/local/modules/modules/Front/Config/front.xml +++ /dev/null @@ -1,273 +0,0 @@ - - - - - - Thelia\Controller\Front\DefaultController::noAction - includes/mini-cart - - - - Thelia\Controller\Front\DefaultController::noAction - includes/addedToCart - - - - - Front\Controller\CustomerController::viewRegisterAction - - - - Front\Controller\CustomerController::createAction - register - - - - - Front\Controller\CustomerController::viewLoginAction - - - - Front\Controller\CustomerController::loginAction - login - - - - - Front\Controller\CustomerController::newPasswordAction - password - - - - Front\Controller\CustomerController::newPasswordSentAction - password - - - - - Front\Controller\CustomerController::logoutAction - - - - - Front\Controller\CustomerController::confirmCustomerAction - - - - - - Thelia\Controller\Front\DefaultController::noAction - account - - - - Front\Controller\CustomerController::viewAction - account-update - - - - Front\Controller\CustomerController::updateAction - account-update - - - - - Front\Controller\CustomerController::updatePasswordAction - account-password - - - - Thelia\Controller\Front\DefaultController::noAction - account-password - - - - Front\Controller\OrderController::viewAction - \d+ - - - - Front\Controller\OrderController::generateDeliveryPdf - \d+ - - - - Front\Controller\OrderController::generateInvoicePdf - \d+ - - - - Front\Controller\OrderController::downloadVirtualProduct - \d+ - - - - - - Thelia\Controller\Front\DefaultController::noAction - address - - - - Front\Controller\AddressController::createAction - address - - - - Front\Controller\AddressController::updateViewAction - address-update - - - - Front\Controller\AddressController::processUpdateAction - address-update - - - - Front\Controller\AddressController::deleteAction - account - - - - Front\Controller\AddressController::generateModalAction - modal-address - \d+ - - - - Front:Address:makeAddressDefault - \d+ - - - - - - - Thelia\Controller\Front\DefaultController::noAction - cart - - - - Front\Controller\CartController::addItem - - - - Front\Controller\CartController::deleteItem - cart - - - - Front\Controller\CartController::changeItem - cart - - - - Front\Controller\CartController::changeCountry - cart - - - - - - Front\Controller\OrderController::deliver - order-delivery - - - - Front\Controller\OrderController::deliverView - order-delivery - - - - Front\Controller\OrderController::getDeliveryModuleListAjaxAction - - - - Front\Controller\OrderController::invoice - order-invoice - - - - Thelia\Controller\Front\DefaultController::noAction - order-invoice - - - - Front\Controller\CouponController::consumeAction - order-invoice - - - - Front\Controller\CouponController::clearAllCouponsAction - order-invoice - - - - Front\Controller\OrderController::pay - - - - Front\Controller\OrderController::orderPlaced - order-placed - - - - Front\Controller\OrderController::orderFailed - order-failed - - - - - - Front\Controller\ContactController::sendAction - contact - - - - Thelia\Controller\Front\DefaultController::noAction - contact-success - - - - - - Front\Controller\NewsletterController::subscribeAction - newsletter - - - - Front\Controller\NewsletterController::unsubscribeAction - newsletter-unsubscribe - - - - - - - Front\Controller\SitemapController::generateAction - - - - - - Front\Controller\FeedController::generateAction - catalog - - - - - - - - Thelia\Controller\Front\DefaultController::emptyRoute - - - - - Thelia\Controller\Front\DefaultController::noAction - index - ^(?!admin|api)[^/]+ - - diff --git a/local/modules/modules/Front/Config/module.xml b/local/modules/modules/Front/Config/module.xml deleted file mode 100644 index 8b61bb66..00000000 --- a/local/modules/modules/Front/Config/module.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - Front\Front - - Front integration - - - - Front office module - - - - en_US - fr_FR - - 2.3.0 - - - Thelia team - info@thelia.net - - - classic - 2.2.0 - alpha - 1 - diff --git a/local/modules/modules/Front/Controller/AddressController.php b/local/modules/modules/Front/Controller/AddressController.php deleted file mode 100644 index 5ef57311..00000000 --- a/local/modules/modules/Front/Controller/AddressController.php +++ /dev/null @@ -1,273 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\Form\Form; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Address\AddressCreateOrUpdateEvent; -use Thelia\Core\Event\Address\AddressEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\Customer; - -/** - * Class AddressController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class AddressController extends BaseFrontController -{ - - /** - * Controller for generate modal containing update form - * Check if request is a XmlHttpRequest and address owner is the current customer - * - * @param $address_id - */ - public function generateModalAction($address_id) - { - - $this->checkAuth(); - $this->checkXmlHttpRequest(); - - } - - /** - * Create controller. - * Check if customer is logged in - * - * Dispatch TheliaEvents::ADDRESS_CREATE event - */ - public function createAction() - { - $this->checkAuth(); - - $addressCreate = $this->createForm(FrontForm::ADDRESS_CREATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($addressCreate, "post"); - $event = $this->createAddressEvent($form); - $event->setCustomer($customer); - - $this->dispatch(TheliaEvents::ADDRESS_CREATE, $event); - - return $this->generateSuccessRedirect($addressCreate); - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans("Please check your input: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans("Sorry, an error occured: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } - - Tlog::getInstance()->error(sprintf("Error during address creation process : %s", $message)); - - $addressCreate->setErrorMessage($message); - - $this->getParserContext() - ->addForm($addressCreate) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($addressCreate->hasErrorUrl()) { - return $this->generateErrorRedirect($addressCreate); - } - } - - protected function createAddressEvent(Form $form) - { - return new AddressCreateOrUpdateEvent( - $form->get("label")->getData(), - $form->get("title")->getData(), - $form->get("firstname")->getData(), - $form->get("lastname")->getData(), - $form->get("address1")->getData(), - $form->get("address2")->getData(), - $form->get("address3")->getData(), - $form->get("zipcode")->getData(), - $form->get("city")->getData(), - $form->get("country")->getData(), - $form->get("cellphone")->getData(), - $form->get("phone")->getData(), - $form->get("company")->getData(), - $form->get("is_default")->getData(), - $form->get("state")->getData() - ); - } - - public function updateViewAction($address_id) - { - $this->checkAuth(); - - $customer = $this->getSecurityContext()->getCustomerUser(); - $address = AddressQuery::create()->findPk($address_id); - - if (!$address || $customer->getId() != $address->getCustomerId()) { - return $this->generateRedirectFromRoute('default'); - } - - $this->getParserContext()->set("address_id", $address_id); - } - - public function processUpdateAction($address_id) - { - $this->checkAuth(); - - $addressUpdate = $this->createForm(FrontForm::ADDRESS_UPDATE); - - try { - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($addressUpdate); - - $address = AddressQuery::create()->findPk($address_id); - - if (null === $address) { - return $this->generateRedirectFromRoute('default'); - } - - if ($address->getCustomer()->getId() != $customer->getId()) { - return $this->generateRedirectFromRoute('default'); - } - - $event = $this->createAddressEvent($form); - $event->setAddress($address); - - $this->dispatch(TheliaEvents::ADDRESS_UPDATE, $event); - - return $this->generateSuccessRedirect($addressUpdate); - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans("Please check your input: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans("Sorry, an error occured: %s", ['%s' => $e->getMessage()], Front::MESSAGE_DOMAIN); - } - - $this->getParserContext()->set("address_id", $address_id); - - Tlog::getInstance()->error(sprintf("Error during address creation process : %s", $message)); - - $addressUpdate->setErrorMessage($message); - - $this->getParserContext() - ->addForm($addressUpdate) - ->setGeneralError($message) - ; - - if ($addressUpdate->hasErrorUrl()) { - return $this->generateErrorRedirect($addressUpdate); - } - } - - public function deleteAction($address_id) - { - $this->checkAuth(); - $error_message = false; - - $customer = $this->getSecurityContext()->getCustomerUser(); - $address = AddressQuery::create()->findPk($address_id); - - if (!$address || $customer->getId() != $address->getCustomerId()) { - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return $this->jsonResponse( - json_encode( - array( - "success" => false, - "message" => $this->getTranslator()->trans( - "Error during address deletion process", - [], - Front::MESSAGE_DOMAIN - ) - ) - ) - ); - } else { - return $this->generateRedirectFromRoute('default'); - } - } - - try { - $this->dispatch(TheliaEvents::ADDRESS_DELETE, new AddressEvent($address)); - } catch (\Exception $e) { - $error_message = $e->getMessage(); - } - - Tlog::getInstance()->error(sprintf('Error during address deletion : %s', $error_message)); - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - if ($error_message) { - $response = $this->jsonResponse(json_encode(array( - "success" => false, - "message" => $error_message - ))); - } else { - $response = $this->jsonResponse( - json_encode([ - "success" => true, - "message" => "" - ]) - ); - } - - return $response; - - } else { - return $this->generateRedirectFromRoute('default', array('view'=>'account')); - } - } - - public function makeAddressDefaultAction($addressId) - { - $this->checkAuth(); - - $address = AddressQuery::create() - ->filterByCustomerId($this->getSecurityContext()->getCustomerUser()->getId()) - ->findPk($addressId) - ; - - if (null === $address) { - $this->pageNotFound(); - } - - try { - $event = new AddressEvent($address); - $this->dispatch(TheliaEvents::ADDRESS_DEFAULT, $event); - } catch (\Exception $e) { - $this->getParserContext() - ->setGeneralError($e->getMessage()) - ; - - return $this->render("account"); - } - - return $this->generateRedirectFromRoute('default', array('view'=>'account')); - } -} diff --git a/local/modules/modules/Front/Controller/CartController.php b/local/modules/modules/Front/Controller/CartController.php deleted file mode 100644 index 8cb0efd9..00000000 --- a/local/modules/modules/Front/Controller/CartController.php +++ /dev/null @@ -1,237 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\Exception\PropelException; -use Symfony\Component\HttpFoundation\Cookie; -use Symfony\Component\HttpFoundation\Request; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Cart\CartEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\CartAdd; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\ConfigQuery; -use Thelia\Model\OrderPostage; -use Thelia\Module\Exception\DeliveryException; -use Thelia\Tools\URL; - -class CartController extends BaseFrontController -{ - public function addItem() - { - $request = $this->getRequest(); - - $cartAdd = $this->getAddCartForm($request); - $message = null; - - try { - $form = $this->validateForm($cartAdd); - - $cartEvent = $this->getCartEvent(); - - $cartEvent->bindForm($form); - - $this->getDispatcher()->dispatch(TheliaEvents::CART_ADDITEM, $cartEvent); - - $this->afterModifyCart(); - - - if ($this->getRequest()->isXmlHttpRequest()) { - $this->changeViewForAjax(); - } elseif (null !== $response = $this->generateSuccessRedirect($cartAdd)) { - return $response; - } - - } catch (PropelException $e) { - Tlog::getInstance()->error(sprintf("Failed to add item to cart with message : %s", $e->getMessage())); - $message = $this->getTranslator()->trans( - "Failed to add this article to your cart, please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (FormValidationException $e) { - $message = $e->getMessage(); - } - - if ($message) { - $cartAdd->setErrorMessage($message); - $this->getParserContext()->addForm($cartAdd); - } - } - - public function changeItem() - { - $cartEvent = $this->getCartEvent(); - $cartEvent->setCartItemId($this->getRequest()->get("cart_item")); - $cartEvent->setQuantity($this->getRequest()->get("quantity")); - - try { - $this->getTokenProvider()->checkToken( - $this->getRequest()->query->get('_token') - ); - - $this->dispatch(TheliaEvents::CART_UPDATEITEM, $cartEvent); - - $this->afterModifyCart(); - - if ($this->getRequest()->isXmlHttpRequest()) { - $this->changeViewForAjax(); - } - } catch (\Exception $e) { - Tlog::getInstance()->error(sprintf("Failed to change cart item quantity: %s", $e->getMessage())); - - $this->getParserContext()->setGeneralError($e->getMessage()); - } - } - - public function deleteItem() - { - $cartEvent = $this->getCartEvent(); - $cartEvent->setCartItemId($this->getRequest()->get("cart_item")); - - try { - $this->getTokenProvider()->checkToken( - $this->getRequest()->query->get('_token') - ); - - $this->getDispatcher()->dispatch(TheliaEvents::CART_DELETEITEM, $cartEvent); - - $this->afterModifyCart(); - } catch (\Exception $e) { - Tlog::getInstance()->error(sprintf("error during deleting cartItem with message : %s", $e->getMessage())); - $this->getParserContext()->setGeneralError($e->getMessage()); - } - - $this->changeViewForAjax(); - - if (null != $successUrl = $this->getRequest()->query->get('success_url')) { - $response = $this->generateRedirect( - URL::getInstance()->absoluteUrl($successUrl) - ); - - return $response; - } - } - - protected function changeViewForAjax() - { - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - $request = $this->getRequest(); - - $view = $request->get('ajax-view', "includes/mini-cart"); - - $request->attributes->set('_view', $view); - } - } - - public function changeCountry() - { - $redirectUrl = URL::getInstance()->absoluteUrl("/cart"); - $deliveryId = $this->getRequest()->get("country"); - $cookieName = ConfigQuery::read('front_cart_country_cookie_name', 'fcccn'); - $cookieExpires = ConfigQuery::read('front_cart_country_cookie_expires', 2592000); - $cookieExpires = intval($cookieExpires) ?: 2592000; - - $cookie = new Cookie($cookieName, $deliveryId, time() + $cookieExpires, '/'); - - $response = $this->generateRedirect($redirectUrl); - $response->headers->setCookie($cookie); - - return $response; - } - - /** - * @return \Thelia\Core\Event\Cart\CartEvent - */ - protected function getCartEvent() - { - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - return new CartEvent($cart); - } - - /** - * Find the good way to construct the cart form - * - * @param Request $request - * @return CartAdd - */ - private function getAddCartForm(Request $request) - { - if ($request->isMethod("post")) { - $cartAdd = $this->createForm(FrontForm::CART_ADD); - } else { - $cartAdd = $this->createForm( - FrontForm::CART_ADD, - "form", - array(), - array( - 'csrf_protection' => false, - ), - $this->container - ); - } - - return $cartAdd; - } - - protected function afterModifyCart() - { - /* recalculate postage amount */ - $order = $this->getSession()->getOrder(); - if (null !== $order) { - $deliveryModule = $order->getModuleRelatedByDeliveryModuleId(); - $deliveryAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - - if (null !== $deliveryModule && null !== $deliveryAddress) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $orderEvent = new OrderEvent($order); - - try { - $postage = OrderPostage::loadFromPostage( - $moduleInstance->getPostage($deliveryAddress->getCountry()) - ); - - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - } catch (DeliveryException $ex) { - // The postage has been chosen, but changes in the cart causes an exception. - // Reset the postage data in the order - $orderEvent->setDeliveryModule(0); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - } - } - } - } -} diff --git a/local/modules/modules/Front/Controller/ContactController.php b/local/modules/modules/Front/Controller/ContactController.php deleted file mode 100644 index e476a015..00000000 --- a/local/modules/modules/Front/Controller/ContactController.php +++ /dev/null @@ -1,84 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\ConfigQuery; - -/** - * Class ContactController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class ContactController extends BaseFrontController -{ - /** - * send contact message - */ - public function sendAction() - { - $contactForm = $this->createForm(FrontForm::CONTACT); - - try { - $form = $this->validateForm($contactForm); - - $this->getMailer()->sendSimpleEmailMessage( - [ ConfigQuery::getStoreEmail() => $form->get('name')->getData() ], - [ ConfigQuery::getStoreEmail() => ConfigQuery::getStoreName() ], - $form->get('subject')->getData(), - '', - $form->get('message')->getData(), - [], - [], - [ $form->get('email')->getData() => $form->get('name')->getData() ] - ); - - if ($contactForm->hasSuccessUrl()) { - return $this->generateSuccessRedirect($contactForm); - } - - return $this->generateRedirectFromRoute('contact.success'); - - } catch (FormValidationException $e) { - $error_message = $e->getMessage(); - } - - Tlog::getInstance()->error(sprintf('Error during sending contact mail : %s', $error_message)); - - $contactForm->setErrorMessage($error_message); - - $this->getParserContext() - ->addForm($contactForm) - ->setGeneralError($error_message) - ; - - // Redirect to error URL if defined - if ($contactForm->hasErrorUrl()) { - return $this->generateErrorRedirect($contactForm); - } - } -} diff --git a/local/modules/modules/Front/Controller/CouponController.php b/local/modules/modules/Front/Controller/CouponController.php deleted file mode 100644 index c21288f9..00000000 --- a/local/modules/modules/Front/Controller/CouponController.php +++ /dev/null @@ -1,159 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\Exception\PropelException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Coupon\CouponConsumeEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Exception\UnmatchableConditionException; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\AddressQuery; -use Thelia\Model\OrderPostage; -use Thelia\Module\Exception\DeliveryException; - -/** - * Class CouponController - * @package Thelia\Controller\Front - * @author Guillaume MOREL - */ -class CouponController extends BaseFrontController -{ - /** - * Clear all coupons. - */ - public function clearAllCouponsAction() - { - // Dispatch Event to the Action - $this->getDispatcher()->dispatch(TheliaEvents::COUPON_CLEAR_ALL); - } - - /** - * Coupon consuming - */ - public function consumeAction() - { - $this->checkCartNotEmpty(); - - $message = false; - $couponCodeForm = $this->createForm(FrontForm::COUPON_CONSUME); - - try { - $form = $this->validateForm($couponCodeForm, 'post'); - - $couponCode = $form->get('coupon-code')->getData(); - - if (null === $couponCode || empty($couponCode)) { - $message = true; - throw new \Exception( - $this->getTranslator()->trans( - 'Coupon code can\'t be empty', - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - $couponConsumeEvent = new CouponConsumeEvent($couponCode); - - // Dispatch Event to the Action - $this->getDispatcher()->dispatch(TheliaEvents::COUPON_CONSUME, $couponConsumeEvent); - - /* recalculate postage amount */ - $order = $this->getSession()->getOrder(); - - if (null !== $order) { - $deliveryModule = $order->getModuleRelatedByDeliveryModuleId(); - $deliveryAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - - if (null !== $deliveryModule && null !== $deliveryAddress) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $orderEvent = new OrderEvent($order); - - try { - $postage = OrderPostage::loadFromPostage( - $moduleInstance->getPostage($deliveryAddress->getCountry()) - ); - - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - } catch (DeliveryException $ex) { - // The postage has been chosen, but changes dues to coupon causes an exception. - // Reset the postage data in the order - $orderEvent->setDeliveryModule(0); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - } - } - } - - return $this->generateSuccessRedirect($couponCodeForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - 'Please check your coupon code: %message', - ["%message" => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (UnmatchableConditionException $e) { - $message = $this->getTranslator()->trans( - 'You should sign in or register to use this coupon', - [ - '%sign' => $this->retrieveUrlFromRouteId('customer.login.view'), - '%register' => $this->retrieveUrlFromRouteId('customer.create.view'), - ], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - 'Sorry, an error occurred: %message', - ["%message" => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order delivery process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $couponCodeForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($couponCodeForm) - ->setGeneralError($message); - } - - return $this->generateErrorRedirect($couponCodeForm); - } -} diff --git a/local/modules/modules/Front/Controller/CustomerController.php b/local/modules/modules/Front/Controller/CustomerController.php deleted file mode 100644 index 9c36aa1a..00000000 --- a/local/modules/modules/Front/Controller/CustomerController.php +++ /dev/null @@ -1,610 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent; -use Thelia\Core\Event\Customer\CustomerEvent; -use Thelia\Core\Event\Customer\CustomerLoginEvent; -use Thelia\Core\Event\LostPasswordEvent; -use Thelia\Core\Event\Newsletter\NewsletterEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Core\Security\Authentication\CustomerUsernamePasswordFormAuthenticator; -use Thelia\Core\Security\Exception\AuthenticationException; -use Thelia\Core\Security\Exception\CustomerNotConfirmedException; -use Thelia\Core\Security\Exception\UsernameNotFoundException; -use Thelia\Core\Security\Exception\WrongPasswordException; -use Thelia\Form\CustomerLogin; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\ConfigQuery; -use Thelia\Model\Customer; -use Thelia\Model\CustomerQuery; -use Thelia\Model\NewsletterQuery; -use Thelia\Tools\RememberMeTrait; -use Thelia\Tools\URL; - -/** - * Class CustomerController - * @package Thelia\Controller\Front - * @author Manuel Raynaud - */ -class CustomerController extends BaseFrontController -{ - use RememberMeTrait; - - /** - * Display the register template if no customer logged - */ - public function viewLoginAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - return $this->render("login"); - } - - /** - * Display the register template if no customer logged - */ - public function viewRegisterAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - return $this->render("register"); - } - - public function newPasswordAction() - { - $passwordLost = $this->createForm(FrontForm::CUSTOMER_LOST_PASSWORD); - - if (! $this->getSecurityContext()->hasCustomerUser()) { - try { - $form = $this->validateForm($passwordLost); - - $event = new LostPasswordEvent($form->get("email")->getData()); - - $this->dispatch(TheliaEvents::LOST_PASSWORD, $event); - - return $this->generateSuccessRedirect($passwordLost); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occurred: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf( - "Error during customer creation process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - } - } else { - $message = $this->getTranslator()->trans( - "You're currently logged in. Please log out before requesting a new password.", - [], - Front::MESSAGE_DOMAIN - ); - } - - $passwordLost->setErrorMessage($message); - - $this->getParserContext() - ->addForm($passwordLost) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($passwordLost->hasErrorUrl()) { - return $this->generateErrorRedirect($passwordLost); - } - } - - public function newPasswordSentAction() - { - $this->getParser()->assign('password_sent', true); - } - - /** - * Create a new customer. - * On success, redirect to success_url if exists, otherwise, display the same view again. - */ - public function createAction() - { - if (! $this->getSecurityContext()->hasCustomerUser()) { - $customerCreation = $this->createForm(FrontForm::CUSTOMER_CREATE); - - try { - $form = $this->validateForm($customerCreation, "post"); - - $customerCreateEvent = $this->createEventInstance($form->getData()); - - $this->dispatch(TheliaEvents::CUSTOMER_CREATEACCOUNT, $customerCreateEvent); - - $newCustomer = $customerCreateEvent->getCustomer(); - - // Newsletter - if (true === $form->get('newsletter')->getData()) { - $newsletterEmail = $newCustomer->getEmail(); - $nlEvent = new NewsletterEvent( - $newsletterEmail, - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setFirstname($newCustomer->getFirstname()); - $nlEvent->setLastname($newCustomer->getLastname()); - - // Security : Check if this new Email address already exist - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterEmail)) { - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent); - } else { - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent); - } - } - - if (ConfigQuery::isCustomerEmailConfirmationEnable() && ! $newCustomer->getEnable()) { - $response = $this->generateRedirectFromRoute('customer.login.view'); - } else { - $this->processLogin($customerCreateEvent->getCustomer()); - - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - if ($cart->getCartItems()->count() > 0) { - $response = $this->generateRedirectFromRoute('cart.view'); - } else { - $response = $this->generateSuccessRedirect($customerCreation); - } - } - - return $response; - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer creation process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - - $customerCreation->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerCreation) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerCreation->hasErrorUrl()) { - return $this->generateErrorRedirect($customerCreation); - } - } - } - - /** - * Prepare customer data update. - */ - public function viewAction() - { - $this->checkAuth(); - - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - $data = array( - 'id' => $customer->getId(), - 'title' => $customer->getTitleId(), - 'firstname' => $customer->getFirstName(), - 'lastname' => $customer->getLastName(), - 'email' => $customer->getEmail(), - 'email_confirm' => $customer->getEmail(), - 'newsletter' => null !== NewsletterQuery::create()->findOneByEmail($customer->getEmail()), - ); - - $customerProfileUpdateForm = $this->createForm(FrontForm::CUSTOMER_PROFILE_UPDATE, 'form', $data); - - // Pass it to the parser - $this->getParserContext()->addForm($customerProfileUpdateForm); - } - - public function updatePasswordAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $customerPasswordUpdateForm = $this->createForm(FrontForm::CUSTOMER_PASSWORD_UPDATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - - $form = $this->validateForm($customerPasswordUpdateForm, "post"); - - $customerChangeEvent = $this->createEventInstance($form->getData()); - $customerChangeEvent->setCustomer($customer); - $this->dispatch(TheliaEvents::CUSTOMER_UPDATEPROFILE, $customerChangeEvent); - - return $this->generateSuccessRedirect($customerPasswordUpdateForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer password modification process : %s.", - $message - ) - ); - - $customerPasswordUpdateForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerPasswordUpdateForm) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerPasswordUpdateForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerPasswordUpdateForm); - } - } - } - - public function updateAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $customerProfileUpdateForm = $this->createForm(FrontForm::CUSTOMER_PROFILE_UPDATE); - - try { - /** @var Customer $customer */ - $customer = $this->getSecurityContext()->getCustomerUser(); - $newsletterOldEmail = $customer->getEmail(); - - $form = $this->validateForm($customerProfileUpdateForm, "post"); - - $customerChangeEvent = $this->createEventInstance($form->getData()); - $customerChangeEvent->setCustomer($customer); - - $customerChangeEvent->setEmailUpdateAllowed( - (intval(ConfigQuery::read('customer_change_email', 0))) ? true : false - ); - - $this->dispatch(TheliaEvents::CUSTOMER_UPDATEPROFILE, $customerChangeEvent); - - $updatedCustomer = $customerChangeEvent->getCustomer(); - - // Newsletter - if (true === $form->get('newsletter')->getData()) { - $nlEvent = new NewsletterEvent( - $updatedCustomer->getEmail(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setFirstname($updatedCustomer->getFirstname()); - $nlEvent->setLastname($updatedCustomer->getLastname()); - - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterOldEmail)) { - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UPDATE, $nlEvent); - } else { - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $nlEvent); - } - } else { - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($newsletterOldEmail)) { - $nlEvent = new NewsletterEvent( - $updatedCustomer->getEmail(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - $nlEvent->setId($newsletter->getId()); - $this->dispatch(TheliaEvents::NEWSLETTER_UNSUBSCRIBE, $nlEvent); - } - } - - $this->processLogin($updatedCustomer); - - return $this->generateSuccessRedirect($customerProfileUpdateForm); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - [ - '%s' => $e->getMessage() - ], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error(sprintf("Error during customer modification process : %s.", $message)); - - $customerProfileUpdateForm->setErrorMessage($message); - - $this->getParserContext() - ->addForm($customerProfileUpdateForm) - ->setGeneralError($message) - ; - - // Redirect to error URL if defined - if ($customerProfileUpdateForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerProfileUpdateForm); - } - } - } - - /** - * Perform user login. On a successful login, the user is redirected to the URL - * found in the success_url form parameter, or / if none was found. - * - * If login is not successfull, the same view is displayed again. - * - */ - public function loginAction() - { - if (!$this->getSecurityContext()->hasCustomerUser()) { - $request = $this->getRequest(); - $customerLoginForm = new CustomerLogin($request); - - try { - $form = $this->validateForm($customerLoginForm, "post"); - - // If User is a new customer - if ($form->get('account')->getData() == 0 && $form->get("email")->getErrors()->count() == 0) { - return $this->generateRedirectFromRoute( - "customer.create.process", - ["email" => $form->get("email")->getData()] - ); - } else { - try { - $authenticator = new CustomerUsernamePasswordFormAuthenticator($request, $customerLoginForm); - - /** @var Customer $customer */ - $customer = $authenticator->getAuthentifiedUser(); - - $this->processLogin($customer); - - if (intval($form->get('remember_me')->getData()) > 0) { - // If a remember me field if present and set in the form, create - // the cookie thant store "remember me" information - $this->createRememberMeCookie( - $customer, - $this->getRememberMeCookieName(), - $this->getRememberMeCookieExpiration() - ); - } - - return $this->generateSuccessRedirect($customerLoginForm); - - } catch (UsernameNotFoundException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (WrongPasswordException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } catch (CustomerNotConfirmedException $e) { - if ($e->getUser() !== null) { - // Send the confirmation email again - $this->getDispatcher()->dispatch( - TheliaEvents::SEND_ACCOUNT_CONFIRMATION_EMAIL, - new CustomerEvent($e->getUser()) - ); - } - $message = $this->getTranslator()->trans( - "Your account is not yet confirmed. A confirmation email has been sent to your email address, please check your mailbox", - [], - Front::MESSAGE_DOMAIN - ); - } catch (AuthenticationException $e) { - $message = $this->getTranslator()->trans( - "Wrong email or password. Please try again", - [], - Front::MESSAGE_DOMAIN - ); - } - - } - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - Tlog::getInstance()->error( - sprintf( - "Error during customer login process : %s. Exception was %s", - $message, - $e->getMessage() - ) - ); - - $customerLoginForm->setErrorMessage($message); - - $this->getParserContext()->addForm($customerLoginForm); - - if ($customerLoginForm->hasErrorUrl()) { - return $this->generateErrorRedirect($customerLoginForm); - } - } - } - - /** - * Perform customer logout. - */ - public function logoutAction() - { - if ($this->getSecurityContext()->hasCustomerUser()) { - $this->dispatch(TheliaEvents::CUSTOMER_LOGOUT); - } - - $this->clearRememberMeCookie($this->getRememberMeCookieName()); - - // Redirect to home page - return $this->generateRedirect(URL::getInstance()->getIndexPage()); - } - - /** - * @param $token - * @return \Symfony\Component\HttpFoundation\Response - * @throws \Exception - * @throws \Propel\Runtime\Exception\PropelException - */ - public function confirmCustomerAction($token) - { - /** @var Customer $customer */ - if (null === $customer = CustomerQuery::create()->findOneByConfirmationToken($token)) { - throw new NotFoundHttpException(); - } - - $customer - ->setEnable(true) - ->save() - ; - - // Clear form error context - - return $this->generateRedirectFromRoute('customer.login.view', [ 'validation_done' => 1 ]); - } - - /** - * Dispatch event for customer login action - * - * @param Customer $customer - */ - protected function processLogin(Customer $customer) - { - $this->dispatch(TheliaEvents::CUSTOMER_LOGIN, new CustomerLoginEvent($customer)); - } - - /** - * @param $data - * @return \Thelia\Core\Event\Customer\CustomerCreateOrUpdateEvent - */ - private function createEventInstance($data) - { - $customerCreateEvent = new CustomerCreateOrUpdateEvent( - isset($data["title"])?$data["title"]:null, - isset($data["firstname"])?$data["firstname"]:null, - isset($data["lastname"])?$data["lastname"]:null, - isset($data["address1"])?$data["address1"]:null, - isset($data["address2"])?$data["address2"]:null, - isset($data["address3"])?$data["address3"]:null, - isset($data["phone"])?$data["phone"]:null, - isset($data["cellphone"])?$data["cellphone"]:null, - isset($data["zipcode"])?$data["zipcode"]:null, - isset($data["city"])?$data["city"]:null, - isset($data["country"])?$data["country"]:null, - isset($data["email"])?$data["email"]:null, - isset($data["password"]) ? $data["password"]:null, - $this->getRequest()->getSession()->getLang()->getId(), - isset($data["reseller"])?$data["reseller"]:null, - isset($data["sponsor"])?$data["sponsor"]:null, - isset($data["discount"])?$data["discount"]:null, - isset($data["company"])?$data["company"]:null, - null, - isset($data["state"])?$data["state"]:null - ); - - return $customerCreateEvent; - } - - - protected function getRememberMeCookieName() - { - return ConfigQuery::read('customer_remember_me_cookie_name', 'crmcn'); - } - - protected function getRememberMeCookieExpiration() - { - return ConfigQuery::read('customer_remember_me_cookie_expiration', 2592000 /* 1 month */); - } -} diff --git a/local/modules/modules/Front/Controller/FeedController.php b/local/modules/modules/Front/Controller/FeedController.php deleted file mode 100644 index 5c3f03b6..00000000 --- a/local/modules/modules/Front/Controller/FeedController.php +++ /dev/null @@ -1,202 +0,0 @@ - - */ -class FeedController extends BaseFrontController { - - - /** - * Folder name for feeds cache - */ - const FEED_CACHE_DIR = "feeds"; - - /** - * Key prefix for feed cache - */ - const FEED_CACHE_KEY = "feed"; - - - /** - * render the RSS feed - * - * @param $context string The context of the feed : catalog, content. default: catalog - * @param $lang string The lang of the feed : fr_FR, en_US, ... default: default language of the site - * @param $id string The id of the parent element. The id of the main parent category for catalog context. - * The id of the content folder for content context - * @return Response - * @throws \RuntimeException - */ - public function generateAction($context, $lang, $id) - { - - /** @var Request $request */ - $request = $this->getRequest(); - - // context - if ("" === $context){ - $context = "catalog"; - } else if (! in_array($context, array("catalog", "content", "brand")) ){ - $this->pageNotFound(); - } - - // the locale : fr_FR, en_US, - if ("" !== $lang) { - if (! $this->checkLang($lang)){ - $this->pageNotFound(); - } - } else { - try{ - $lang = Lang::getDefaultLanguage(); - $lang = $lang->getLocale(); - } catch (\RuntimeException $ex){ - // @todo generate error page - throw new \RuntimeException("No default language is defined. Please define one."); - } - } - if (null === $lang = LangQuery::create()->findOneByLocale($lang)){ - $this->pageNotFound(); - } - $lang = $lang->getId(); - - // check if element exists and is visible - if ("" !== $id){ - if (false === $this->checkId($context, $id)){ - $this->pageNotFound(); - } - } - - $flush = $request->query->get("flush", ""); - - // check if feed already in cache - $cacheContent = false; - - $cacheDir = $this->getCacheDir(); - $cacheKey = self::FEED_CACHE_KEY . $lang . $context . $id; - $cacheExpire = intval(ConfigQuery::read("feed_ttl", '7200')) ?: 7200; - - $cacheDriver = new FilesystemCache($cacheDir); - if (!($this->checkAdmin() && "" !== $flush)){ - $cacheContent = $cacheDriver->fetch($cacheKey); - } else { - $cacheDriver->delete($cacheKey); - } - - // if not in cache - if (false === $cacheContent){ - // render the view - $cacheContent = $this->renderRaw( - "feed", - array( - "_context_" => $context, - "_lang_" => $lang, - "_id_" => $id - ) - ); - // save cache - $cacheDriver->save($cacheKey, $cacheContent, $cacheExpire); - } - - $response = new Response(); - $response->setContent($cacheContent); - $response->headers->set('Content-Type', 'application/rss+xml'); - - return $response; - } - - - /** - * get the cache directory for feeds - * - * @return mixed|string - */ - protected function getCacheDir() - { - $cacheDir = $this->container->getParameter("kernel.cache_dir"); - $cacheDir = rtrim($cacheDir, '/'); - $cacheDir .= '/' . self::FEED_CACHE_DIR . '/'; - - return $cacheDir; - } - - /** - * Check if current user has ADMIN role - * - * @return bool - */ - protected function checkAdmin(){ - return $this->getSecurityContext()->hasAdminUser(); - } - - - /** - * Check if a lang is used - * - * @param $lang string The lang code. e.g.: fr - * @return bool true if the language is used, otherwise false - */ - private function checkLang($lang) - { - // load locals - $lang = LangQuery::create() - ->findOneByLocale($lang); - - return (null !== $lang); - } - - - /** - * Check if the element exists and is visible - * - * @param $context string catalog or content - * @param $id string id of the element - * @return bool - */ - private function checkId($context, $id) - { - $ret = false; - if (is_numeric($id)){ - if ("catalog" === $context){ - $cat = CategoryQuery::create()->findPk($id); - $ret = (null !== $cat && $cat->getVisible()); - } elseif ("brand" === $context) { - $brand = BrandQuery::create()->findPk($id); - $ret = (null !== $brand && $brand->getVisible()); - } else { - $folder = FolderQuery::create()->findPk($id); - $ret = (null !== $folder && $folder->getVisible()); - } - } - return $ret; - } -} \ No newline at end of file diff --git a/local/modules/modules/Front/Controller/NewsletterController.php b/local/modules/modules/Front/Controller/NewsletterController.php deleted file mode 100644 index 9e558141..00000000 --- a/local/modules/modules/Front/Controller/NewsletterController.php +++ /dev/null @@ -1,164 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front\Controller; - -use Front\Front; -use Symfony\Component\HttpFoundation\JsonResponse; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Newsletter\NewsletterEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Form\Definition\FrontForm; -use Thelia\Log\Tlog; -use Thelia\Model\Customer; -use Thelia\Model\NewsletterQuery; - -/** - * Class NewsletterController - * @package Thelia\Controller\Front - * @author Manuel Raynaud , Franck Allimant - */ -class NewsletterController extends BaseFrontController -{ - /** - * @since 2.3.0-alpha2 - */ - public function unsubscribeAction() - { - $errorMessage = false; - - $newsletterForm = $this->createForm(FrontForm::NEWSLETTER_UNSUBSCRIBE); - - try { - $form = $this->validateForm($newsletterForm); - - $email = $form->get('email')->getData(); - - if (null !== $newsletter = NewsletterQuery::create()->findOneByEmail($email)) { - $event = new NewsletterEvent( - $email, - $this->getRequest()->getSession()->getLang()->getLocale() - ); - - $event->setId($newsletter->getId()); - - $this->dispatch(TheliaEvents::NEWSLETTER_UNSUBSCRIBE, $event); - - // If a success URL is defined in the form, redirect to it, otherwise use the defaut view - if ($newsletterForm->hasSuccessUrl() && !$this->getRequest()->isXmlHttpRequest()) { - return $this->generateSuccessRedirect($newsletterForm); - } - } - } catch (\Exception $e) { - $errorMessage = $e->getMessage(); - - Tlog::getInstance()->error(sprintf('Error during newsletter unsubscription : %s', $errorMessage)); - - $newsletterForm->setErrorMessage($errorMessage); - } - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return new JsonResponse([ - "success" => ($errorMessage) ? false : true, - "message" => ($errorMessage) ? $errorMessage : $this->getTranslator()->trans( - "Your subscription to our newsletter has been canceled.", - [], - Front::MESSAGE_DOMAIN - ) - ], ($errorMessage) ? 500 : 200); - } - - $this->getParserContext() - ->setGeneralError($errorMessage) - ->addForm($newsletterForm); - - // If an error URL is defined in the form, redirect to it, otherwise use the defaut view - if ($errorMessage && $newsletterForm->hasErrorUrl()) { - return $this->generateErrorRedirect($newsletterForm); - } - } - - public function subscribeAction() - { - $errorMessage = false; - - $newsletterForm = $this->createForm(FrontForm::NEWSLETTER); - - try { - $form = $this->validateForm($newsletterForm); - - $event = new NewsletterEvent( - $form->get('email')->getData(), - $this->getRequest()->getSession()->getLang()->getLocale() - ); - - /** @var Customer $customer */ - if (null !== $customer = $this->getSecurityContext()->getCustomerUser()) { - $event - ->setFirstname($customer->getFirstname()) - ->setLastname($customer->getLastname()) - ; - } else { - $event - ->setFirstname($form->get('firstname')->getData()) - ->setLastname($form->get('lastname')->getData()) - ; - } - - $this->dispatch(TheliaEvents::NEWSLETTER_SUBSCRIBE, $event); - - // If a success URL is defined in the form, redirect to it, otherwise use the defaut view - if ($newsletterForm->hasSuccessUrl() && ! $this->getRequest()->isXmlHttpRequest()) { - return $this->generateSuccessRedirect($newsletterForm); - } - } catch (\Exception $e) { - $errorMessage = $e->getMessage(); - - Tlog::getInstance()->error(sprintf('Error during newsletter subscription : %s', $errorMessage)); - - $newsletterForm->setErrorMessage($errorMessage); - } - - // If Ajax Request - if ($this->getRequest()->isXmlHttpRequest()) { - return new JsonResponse([ - "success" => ($errorMessage) ? false : true, - "message" => ($errorMessage) ? $errorMessage : $this->getTranslator()->trans( - "Thanks for signing up! We'll keep you posted whenever we have any new updates.", - [], - Front::MESSAGE_DOMAIN - ) - ], ($errorMessage) ? 500 : 200); - } - - $this->getParserContext() - ->setGeneralError($errorMessage) - ->addForm($newsletterForm); - - // If an error URL is defined in the form, redirect to it, otherwise use the defaut view - if ($errorMessage && $newsletterForm->hasErrorUrl()) { - return $this->generateErrorRedirect($newsletterForm); - } - } -} diff --git a/local/modules/modules/Front/Controller/OrderController.php b/local/modules/modules/Front/Controller/OrderController.php deleted file mode 100644 index 34ad4139..00000000 --- a/local/modules/modules/Front/Controller/OrderController.php +++ /dev/null @@ -1,604 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ -namespace Front\Controller; - -use Front\Front; -use Propel\Runtime\ActiveQuery\Criteria; -use Propel\Runtime\Exception\PropelException; -use Symfony\Component\HttpFoundation\Response as BaseResponse; -use Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException; -use Thelia\Controller\Front\BaseFrontController; -use Thelia\Core\Event\Delivery\DeliveryPostageEvent; -use Thelia\Core\Event\Order\OrderEvent; -use Thelia\Core\Event\Product\VirtualProductOrderDownloadResponseEvent; -use Thelia\Core\Event\TheliaEvents; -use Thelia\Core\HttpFoundation\Request; -use Thelia\Exception\TheliaProcessException; -use Thelia\Form\Definition\FrontForm; -use Thelia\Form\Exception\FormValidationException; -use Thelia\Log\Tlog; -use Thelia\Model\Address; -use Thelia\Model\AddressQuery; -use Thelia\Model\AreaDeliveryModuleQuery; -use Thelia\Model\ConfigQuery; -use Thelia\Model\ModuleQuery; -use Thelia\Model\Order; -use Thelia\Model\OrderProductQuery; -use Thelia\Model\OrderQuery; -use Thelia\Module\AbstractDeliveryModule; -use Thelia\Module\Exception\DeliveryException; - -/** - * Class OrderController - * @package Thelia\Controller\Front - * @author Etienne Roudeix - */ -class OrderController extends BaseFrontController -{ - /** - * Check if the cart contains only virtual products. - */ - public function deliverView() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - - // check if the cart contains only virtual products - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - $deliveryAddress = $this->getCustomerAddress(); - - if ($cart->isVirtual()) { - if (null !== $deliveryAddress) { - $deliveryModule = ModuleQuery::create()->retrieveVirtualProductDelivery($this->container); - - if (false === $deliveryModule) { - Tlog::getInstance()->error( - $this->getTranslator()->trans( - "To enable the virtual product feature, the VirtualProductDelivery module should be activated", - [], - Front::MESSAGE_DOMAIN - ) - ); - } elseif (count($deliveryModule) == 1) { - return $this->registerVirtualProductDelivery($deliveryModule[0], $deliveryAddress); - } - } - } - - return $this->render( - 'order-delivery', - [ - 'delivery_address_id' => (null !== $deliveryAddress) ? $deliveryAddress->getId() : null - ] - ); - } - - /** - * @param AbstractDeliveryModule $moduleInstance - * @param Address $deliveryAddress - * @return \Symfony\Component\HttpFoundation\Response - */ - private function registerVirtualProductDelivery($moduleInstance, $deliveryAddress) - { - /* get postage amount */ - $deliveryModule = $moduleInstance->getModuleModel(); - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $deliveryAddress); - - $this->getDispatcher()->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - $postage = $deliveryPostageEvent->getPostage(); - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setDeliveryAddress($deliveryAddress->getId()); - $orderEvent->setDeliveryModule($deliveryModule->getId()); - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - - return $this->generateRedirectFromRoute("order.invoice"); - } - - /** - * set delivery address - * set delivery module - */ - public function deliver() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - - $message = false; - - $orderDelivery = $this->createForm(FrontForm::ORDER_DELIVER); - - try { - $form = $this->validateForm($orderDelivery, "post"); - - $deliveryAddressId = $form->get("delivery-address")->getData(); - $deliveryModuleId = $form->get("delivery-module")->getData(); - $deliveryAddress = AddressQuery::create()->findPk($deliveryAddressId); - $deliveryModule = ModuleQuery::create()->findPk($deliveryModuleId); - - /* check that the delivery address belongs to the current customer */ - if ($deliveryAddress->getCustomerId() !== $this->getSecurityContext()->getCustomerUser()->getId()) { - throw new \Exception( - $this->getTranslator()->trans( - "Delivery address does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - /* check that the delivery module fetches the delivery address area */ - if (null === AreaDeliveryModuleQuery::create()->findByCountryAndModule( - $deliveryAddress->getCountry(), - $deliveryModule - )) { - throw new \Exception( - $this->getTranslator()->trans( - "Delivery module cannot be use with selected delivery address", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - /* get postage amount */ - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $deliveryAddress); - - $this->getDispatcher()->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - if (!$deliveryPostageEvent->isValidModule() || null === $deliveryPostageEvent->getPostage()) { - throw new DeliveryException( - $this->getTranslator()->trans('The delivery module is not valid.', [], Front::MESSAGE_DOMAIN) - ); - } - - $postage = $deliveryPostageEvent->getPostage(); - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setDeliveryAddress($deliveryAddressId); - $orderEvent->setDeliveryModule($deliveryModuleId); - $orderEvent->setPostage($postage->getAmount()); - $orderEvent->setPostageTax($postage->getAmountTax()); - $orderEvent->setPostageTaxRuleTitle($postage->getTaxRuleTitle()); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_DELIVERY_MODULE, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_POSTAGE, $orderEvent); - - return $this->generateRedirectFromRoute("order.invoice"); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order delivery process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $orderDelivery->setErrorMessage($message); - - $this->getParserContext() - ->addForm($orderDelivery) - ->setGeneralError($message) - ; - } - } - - /** - * set invoice address - * set payment module - */ - public function invoice() - { - $this->checkAuth(); - $this->checkCartNotEmpty(); - $this->checkValidDelivery(); - - $message = false; - - $orderPayment = $this->createForm(FrontForm::ORDER_PAYMENT); - - try { - $form = $this->validateForm($orderPayment, "post"); - - $invoiceAddressId = $form->get("invoice-address")->getData(); - $paymentModuleId = $form->get("payment-module")->getData(); - - /* check that the invoice address belongs to the current customer */ - $invoiceAddress = AddressQuery::create()->findPk($invoiceAddressId); - if ($invoiceAddress->getCustomerId() !== $this->getSecurityContext()->getCustomerUser()->getId()) { - throw new \Exception( - $this->getTranslator()->trans( - "Invoice address does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ) - ); - } - - $orderEvent = $this->getOrderEvent(); - $orderEvent->setInvoiceAddress($invoiceAddressId); - $orderEvent->setPaymentModule($paymentModuleId); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_INVOICE_ADDRESS, $orderEvent); - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_SET_PAYMENT_MODULE, $orderEvent); - - return $this->generateRedirectFromRoute("order.payment.process"); - - } catch (FormValidationException $e) { - $message = $this->getTranslator()->trans( - "Please check your input: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } catch (PropelException $e) { - $this->getParserContext()->setGeneralError($e->getMessage()); - } catch (\Exception $e) { - $message = $this->getTranslator()->trans( - "Sorry, an error occured: %s", - ['%s' => $e->getMessage()], - Front::MESSAGE_DOMAIN - ); - } - - if ($message !== false) { - Tlog::getInstance()->error( - sprintf("Error during order payment process : %s. Exception was %s", $message, $e->getMessage()) - ); - - $orderPayment->setErrorMessage($message); - - $this->getParserContext() - ->addForm($orderPayment) - ->setGeneralError($message) - ; - } - - return $this->generateErrorRedirect($orderPayment); - } - - public function pay() - { - /* check customer */ - $this->checkAuth(); - - /* check cart count */ - $this->checkCartNotEmpty(); - - /* check stock not empty */ - if (true === ConfigQuery::checkAvailableStock()) { - if (null !== $response = $this->checkStockNotEmpty()) { - return $response; - } - } - - /* check delivery address and module */ - $this->checkValidDelivery(); - - /* check invoice address and payment module */ - $this->checkValidInvoice(); - - $orderEvent = $this->getOrderEvent(); - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_PAY, $orderEvent); - - $placedOrder = $orderEvent->getPlacedOrder(); - - if (null !== $placedOrder && null !== $placedOrder->getId()) { - /* order has been placed */ - if ($orderEvent->hasResponse()) { - return $orderEvent->getResponse(); - } else { - return $this->generateRedirectFromRoute( - 'order.placed', - [], - ['order_id' => $orderEvent->getPlacedOrder()->getId()] - ); - } - } else { - /* order has not been placed */ - return $this->generateRedirectFromRoute('cart.view'); - } - } - - public function orderPlaced($order_id) - { - /* check if the placed order matched the customer */ - $placedOrder = OrderQuery::create()->findPk( - $this->getRequest()->attributes->get('order_id') - ); - - if (null === $placedOrder) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "No placed order", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::NO_PLACED_ORDER, - $placedOrder - ); - } - - $customer = $this->getSecurityContext()->getCustomerUser(); - - if (null === $customer || $placedOrder->getCustomerId() !== $customer->getId()) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "Received placed order id does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::PLACED_ORDER_ID_BAD_CURRENT_CUSTOMER, - $placedOrder - ); - } - - $this->getDispatcher()->dispatch(TheliaEvents::ORDER_CART_CLEAR, $this->getOrderEvent()); - - $this->getParserContext()->set("placed_order_id", $placedOrder->getId()); - } - - - public function orderFailed($order_id, $message) - { - if (empty($order_id)) { - // Fallback to request parameter if the method parameter is empty. - $order_id = $this->getRequest()->get('order_id'); - } - - $failedOrder = OrderQuery::create()->findPk($order_id); - - if (null !== $failedOrder) { - $customer = $this->getSecurityContext()->getCustomerUser(); - - if (null === $customer || $failedOrder->getCustomerId() !== $customer->getId()) { - throw new TheliaProcessException( - $this->getTranslator()->trans( - "Received failed order id does not belong to the current customer", - [], - Front::MESSAGE_DOMAIN - ), - TheliaProcessException::PLACED_ORDER_ID_BAD_CURRENT_CUSTOMER, - $failedOrder - ); - } - } else { - Tlog::getInstance()->warning("Failed order ID '$order_id' not found."); - } - - $this->getParserContext() - ->set("failed_order_id", $order_id) - ->set("failed_order_message", $message) - ; - } - - protected function getOrderEvent() - { - $order = $this->getOrder($this->getRequest()); - - return new OrderEvent($order); - } - - public function getOrder(Request $request) - { - $session = $request->getSession(); - - if (null !== $order = $session->getOrder()) { - return $order; - } - - $order = new Order(); - - $session->setOrder($order); - - return $order; - } - - - public function viewAction($order_id) - { - $this->checkOrderCustomer($order_id); - - return $this->render('account-order', ['order_id' => $order_id]); - } - - public function generateInvoicePdf($order_id) - { - $this->checkOrderCustomer($order_id); - - - return $this->generateOrderPdf($order_id, ConfigQuery::read('pdf_invoice_file', 'invoice')); - } - - public function generateDeliveryPdf($order_id) - { - $this->checkOrderCustomer($order_id); - - return $this->generateOrderPdf($order_id, ConfigQuery::read('pdf_delivery_file', 'delivery')); - } - - public function downloadVirtualProduct($order_product_id) - { - if (null !== $orderProduct = OrderProductQuery::create()->findPk($order_product_id)) { - $order = $orderProduct->getOrder(); - - if ($order->isPaid(false)) { - // check customer - $this->checkOrderCustomer($order->getId()); - - $virtualProductEvent = new VirtualProductOrderDownloadResponseEvent($orderProduct); - $this->getDispatcher()->dispatch( - TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE, - $virtualProductEvent - ); - - $response = $virtualProductEvent->getResponse(); - - if (!$response instanceof BaseResponse) { - throw new \RuntimeException('A Response must be added in the event TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE'); - } - - return $response; - } - } - - throw new AccessDeniedHttpException(); - - } - - private function checkOrderCustomer($order_id) - { - $this->checkAuth(); - - $order = OrderQuery::create()->findPk($order_id); - $valid = true; - if ($order) { - $customerOrder = $order->getCustomer(); - $customer = $this->getSecurityContext()->getCustomerUser(); - - if ($customerOrder->getId() != $customer->getId()) { - $valid = false; - } - } else { - $valid = false; - } - - if (false === $valid) { - throw new AccessDeniedHttpException(); - } - } - - public function getDeliveryModuleListAjaxAction() - { - $this->checkXmlHttpRequest(); - - // Change the delivery address if customer has changed it - $address = null; - $session = $this->getSession(); - $addressId = $this->getRequest()->get('address_id', null); - if (null !== $addressId && $addressId !== $session->getOrder()->getChoosenDeliveryAddress()) { - $address = AddressQuery::create()->findPk($addressId); - if (null !== $address && $address->getCustomerId() === $session->getCustomerUser()->getId()) { - $session->getOrder()->setChoosenDeliveryAddress($addressId); - } - } - - $address = AddressQuery::create()->findPk($session->getOrder()->getChoosenDeliveryAddress()); - - $countryId = $address->getCountryId(); - $stateId = $address->getStateId(); - - $args = array( - 'country' => $countryId, - 'state' => $stateId, - 'address' => $session->getOrder()->getChoosenDeliveryAddress() - ); - - return $this->render('ajax/order-delivery-module-list', $args); - } - - /** - * Redirect to cart view if at least one non product is out of stock - * - * @return null|BaseResponse - */ - private function checkStockNotEmpty() - { - $cart = $this->getSession()->getSessionCart($this->getDispatcher()); - - $cartItems = $cart->getCartItems(); - - foreach ($cartItems as $cartItem) { - $pse = $cartItem->getProductSaleElements(); - - $product = $cartItem->getProduct(); - - if ($pse->getQuantity() <= 0 && $product->getVirtual() !== 1) { - return $this->generateRedirectFromRoute('cart.view'); - } - } - - return null; - } - - /** - * Retrieve the chosen delivery address for a cart or the default customer address if not exists - * - * @return null|Address - */ - protected function getCustomerAddress() - { - $deliveryAddress = null; - $addressId = $this->getSession()->getOrder()->getChoosenDeliveryAddress(); - if (null === $addressId) { - $customer = $this->getSecurityContext()->getCustomerUser(); - - $deliveryAddress = AddressQuery::create() - ->filterByCustomerId($customer->getId()) - ->orderByIsDefault(Criteria::DESC) - ->findOne(); - - if (null !== $deliveryAddress) { - $this->getSession()->getOrder()->setChoosenDeliveryAddress( - $deliveryAddress->getId() - ); - } - } else { - $deliveryAddress = AddressQuery::create()->findPk($addressId); - } - - return $deliveryAddress; - } -} diff --git a/local/modules/modules/Front/Controller/SitemapController.php b/local/modules/modules/Front/Controller/SitemapController.php deleted file mode 100644 index c9c10986..00000000 --- a/local/modules/modules/Front/Controller/SitemapController.php +++ /dev/null @@ -1,150 +0,0 @@ - - */ -class SitemapController extends BaseFrontController { - - - /** - * Folder name for sitemap cache - */ - const SITEMAP_CACHE_DIR = "sitemap"; - - /** - * Key prefix for sitemap cache - */ - const SITEMAP_CACHE_KEY = "sitemap"; - - /** - * @return Response - */ - public function generateAction() - { - /** @var Request $request */ - $request = $this->getRequest(); - - // the locale : fr, en, - $lang = $request->query->get("lang", ""); - if ("" !== $lang) { - if (! $this->checkLang($lang)){ - $this->pageNotFound(); - } - } - // specific content : product, category, cms - $context = $request->query->get("context", ""); - if (! in_array($context, array("", "catalog", "content")) ){ - $this->pageNotFound(); - } - - $flush = $request->query->get("flush", ""); - - // check if sitemap already in cache - $cacheContent = false; - - $cacheDir = $this->getCacheDir(); - $cacheKey = self::SITEMAP_CACHE_KEY . $lang . $context; - $cacheExpire = intval(ConfigQuery::read("sitemap_ttl", '7200')) ?: 7200; - - $cacheDriver = new FilesystemCache($cacheDir); - if (!($this->checkAdmin() && "" !== $flush)){ - $cacheContent = $cacheDriver->fetch($cacheKey); - } else { - $cacheDriver->delete($cacheKey); - } - - // if not in cache - if (false === $cacheContent){ - // render the view - $cacheContent = $this->renderRaw( - "sitemap", - array( - "_lang_" => $lang, - "_context_" => $context - ) - ); - // save cache - $cacheDriver->save($cacheKey, $cacheContent, $cacheExpire); - } - - $response = new Response(); - $response->setContent($cacheContent); - $response->headers->set('Content-Type', 'application/xml'); - - return $response; - } - - - /** - * get the cache directory for sitemap - * - * @return mixed|string - */ - protected function getCacheDir() - { - $cacheDir = $this->container->getParameter("kernel.cache_dir"); - $cacheDir = rtrim($cacheDir, '/'); - $cacheDir .= '/' . self::SITEMAP_CACHE_DIR . '/'; - - return $cacheDir; - } - - /** - * Check if current user has ADMIN role - * - * @return bool - */ - protected function checkAdmin(){ - return $this->getSecurityContext()->hasAdminUser(); - } - - - /** - * Check if a lang is used - * - * @param $lang The lang code. e.g.: fr - * @return bool true if the language is used, otherwise false - */ - private function checkLang($lang) - { - // load locals - $lang = LangQuery::create() - ->findOneByCode($lang); - - return (null !== $lang); - } - -} \ No newline at end of file diff --git a/local/modules/modules/Front/Front.php b/local/modules/modules/Front/Front.php deleted file mode 100644 index c085f27f..00000000 --- a/local/modules/modules/Front/Front.php +++ /dev/null @@ -1,31 +0,0 @@ -. */ -/* */ -/*************************************************************************************/ - -namespace Front; - -use Thelia\Module\BaseModule; - -class Front extends BaseModule -{ - const MESSAGE_DOMAIN = 'front'; -} diff --git a/local/modules/modules/Front/I18n/de_DE.php b/local/modules/modules/Front/I18n/de_DE.php deleted file mode 100644 index bf641783..00000000 --- a/local/modules/modules/Front/I18n/de_DE.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Gutschein-Code darf nicht leer sein', - 'Delivery address does not belong to the current customer' => 'Lieferadresse gehört nicht zum aktuellen Kunden', - 'Delivery module cannot be use with selected delivery address' => 'Lieferung-Modul kann nicht mit ausgewählten Lieferadresse verwendet werden', - 'Error during address deletion process' => 'Fehler beim Löschen der Adresse', - 'Failed to add this article to your cart, please try again' => 'Der Artikel konnte nicht zum Warenkorb hinzugefügt werden, bitte versuchen Sie es erneut', - 'Invoice address does not belong to the current customer' => 'Rechnungsadresse gehört nicht zum aktuellen Kunden', - 'No placed order' => 'Keine Bestellungen', - 'Please check your coupon code: %message' => 'Bitte überprüfen Sie Ihren Gutschein-Code: %message', - 'Please check your input: %s' => 'Bitte überprüfen Sie Ihre Eingabe: %s', - 'Received failed order id does not belong to the current customer' => 'Empfangene Id einer fehlgeschlagenen Bestellung gehört nicht zum aktuellen Kunden', - 'Received placed order id does not belong to the current customer' => 'Empfangene Bestellungs-Id gehört nicht zum aktuellen Kunden', - 'Sorry, an error occured: %s' => 'Leider ist ein Fehler aufgetreten: %s', - 'Sorry, an error occurred: %message' => 'Leider ist ein Fehler aufgetreten: %message', - 'Sorry, an error occurred: %s' => 'Es tut uns Leid, aber ein Fehler ist aufgetreten: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Vielen Dank für Ihre Anmeldung! Wir halten Ihnen auf dem Laufenden über neuen Updates.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Um das virtuelle Produkt-Feature zu aktivieren, sollte das VirtualProductDelivery-Modul aktiviert werden', - 'Wrong email or password. Please try again' => 'E-Mail oder Passwort falsch. Bitte erneut versuchen', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Sie sind derzeit angemeldet. Bitte melden Sie sich ab, bevor Sie ein neues Passwort anfordern.', -]; diff --git a/local/modules/modules/Front/I18n/en_US.php b/local/modules/modules/Front/I18n/en_US.php deleted file mode 100644 index 1db05104..00000000 --- a/local/modules/modules/Front/I18n/en_US.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Coupon code can\'t be empty', - 'Delivery address does not belong to the current customer' => 'Delivery address does not belong to the current customer', - 'Delivery module cannot be use with selected delivery address' => 'Delivery module cannot be use with selected delivery address', - 'Error during address deletion process' => 'Error during address deletion process', - 'Failed to add this article to your cart, please try again' => 'Failed to add this article to your cart, please try again', - 'Invoice address does not belong to the current customer' => 'Invoice address does not belong to the current customer', - 'No placed order' => 'No placed order', - 'Please check your coupon code: %message' => 'Please check your coupon code: %message', - 'Please check your input: %s' => 'Please check your input: %s', - 'Received failed order id does not belong to the current customer' => 'Received failed order id does not belong to the current customer', - 'Received placed order id does not belong to the current customer' => 'Received placed order id does not belong to the current customer', - 'Sorry, an error occured: %s' => 'Sorry, an error occured: %s', - 'Sorry, an error occurred: %message' => 'Sorry, an error occurred: %message', - 'Sorry, an error occurred: %s' => 'Sorry, an error occurred: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'To enable the virtual product feature, the VirtualProductDelivery module should be activated', - 'Wrong email or password. Please try again' => 'Wrong email or password. Please try again', - 'You should sign in or register to use this coupon' => 'You should sign in or register to use this coupon', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'You\'re currently logged in. Please log out before requesting a new password.', - 'Your account is not yet confirmed check out your mailbox' => 'Your account is not yet confirmed check out your mailbox', -); diff --git a/local/modules/modules/Front/I18n/fr_FR.php b/local/modules/modules/Front/I18n/fr_FR.php deleted file mode 100644 index 35405e3e..00000000 --- a/local/modules/modules/Front/I18n/fr_FR.php +++ /dev/null @@ -1,23 +0,0 @@ - 'Le code promo ne peut être vide', - 'Delivery address does not belong to the current customer' => 'L\'adresse de livraison n\'appartient pas au client en cours', - 'Delivery module cannot be use with selected delivery address' => 'Le module de livraison ne peut pas être utilisé avec cette adresse de livraison', - 'Error during address deletion process' => 'Désolé. Une erreur s\'est produite lors de la suppression de l\'adresse', - 'Failed to add this article to your cart, please try again' => 'Impossible d\'ajouter cet article à votre panier. Merci de ré-essayer.', - 'Invoice address does not belong to the current customer' => 'L\'adresse de facturation n\'appartient pas au client en cours', - 'No placed order' => 'Aucune commande passée', - 'Please check your coupon code: %message' => 'Merci de vérifier votre code promo : %message', - 'Please check your input: %s' => 'Merci de vérifier les informations indiquées : %s', - 'Received failed order id does not belong to the current customer' => 'L\'id de commande refusée n\'appartient pas au client en cours', - 'Received placed order id does not belong to the current customer' => 'L\'id de commande passée n\'appartient pas au client en cours', - 'Sorry, an error occured: %s' => 'Désolé. Une erreur s\'est produite : %s', - 'Sorry, an error occurred: %message' => 'Désolé. Une erreur s\'est produite : %message', - 'Sorry, an error occurred: %s' => 'Désolé, une erreur est survenue : %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Merci de votre inscription ! Nous vous tiendrons informé dès qu\'il y aura des nouveautés.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Pour activer les produits virtuels, le module VirtualProductDelivery doit être activé', - 'Wrong email or password. Please try again' => 'Adresse email ou mot de passe incorrect. Merci de ré-essayer.', - 'You should sign in or register to use this coupon' => 'Vous devez vous connecter ou vous inscrire pour utiliser ce coupon', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Vous être actuellement connecté au site. Vous devez vous déconnecter pour demander un nouveau mot de passe.', -]; diff --git a/local/modules/modules/Front/I18n/it_IT.php b/local/modules/modules/Front/I18n/it_IT.php deleted file mode 100644 index 041021bb..00000000 --- a/local/modules/modules/Front/I18n/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Il codice di sconto non può essere vuoto', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Grazie per l\'inscrizione! Ti terremo aggiornato ogni volta che abbiamo eventuali nuovi aggiornamenti.', - 'You should sign in or register to use this coupon' => 'Dovresti accedere o registrarti per utilizzare questo coupon', -]; diff --git a/local/modules/modules/Front/I18n/tr_TR.php b/local/modules/modules/Front/I18n/tr_TR.php deleted file mode 100644 index 47004a8b..00000000 --- a/local/modules/modules/Front/I18n/tr_TR.php +++ /dev/null @@ -1,22 +0,0 @@ - 'Kupon şifre boş olamaz', - 'Delivery address does not belong to the current customer' => 'Teslimat adresi geçerli müşteriye ait değil', - 'Delivery module cannot be use with selected delivery address' => 'Teslim modülü seçili teslimat adresi kullanılamaz', - 'Error during address deletion process' => 'Adres silme işlemi sırasında bir hata oluştu', - 'Failed to add this article to your cart, please try again' => 'Sepetinize Bu ürün eklenemedi, lütfen tekrar deneyin', - 'Invoice address does not belong to the current customer' => 'Fatura adresi geçerli müşteriye ait değil', - 'No placed order' => 'Yerleştirilen hiçbir sipariş', - 'Please check your coupon code: %message' => 'Kupon kodunuzu gözden geçirin: %message', - 'Please check your input: %s' => 'Lütfen girişinizi denetleyin: %s', - 'Received failed order id does not belong to the current customer' => 'Alınan başarısız sipariş kimliği geçerli müşteriye ait değil', - 'Received placed order id does not belong to the current customer' => 'Alınmış yerleştirilmiş sipariş kimliği geçerli müşteriye ait değil', - 'Sorry, an error occured: %s' => 'Üzgünüz, bir hata oluştu: %s', - 'Sorry, an error occurred: %message' => 'Üzgünüz, bir hata oluştu: %message', - 'Sorry, an error occurred: %s' => 'Üzgünüz, bir hata oluştu: %s', - 'Thanks for signing up! We\'ll keep you posted whenever we have any new updates.' => 'Teşekkürler. Yeni güncelleştirmeler olduğunda sizi haberdar edeceğiz.', - 'To enable the virtual product feature, the VirtualProductDelivery module should be activated' => 'Sanal ürün özelliği etkinleştirmek için VirtualProductDelivery modülü etkinleştirilmesi', - 'Wrong email or password. Please try again' => 'Email adresi veya şifre hatalı. Lütfen tekrar deneyiniz', - 'You\'re currently logged in. Please log out before requesting a new password.' => 'Şu anda logged içinde. Lütfen yeni bir parola istemeden önce çıkış.', -]; diff --git a/local/modules/modules/Front/LICENSE.txt b/local/modules/modules/Front/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/Front/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/Front/composer.json b/local/modules/modules/Front/composer.json deleted file mode 100644 index b916b7bb..00000000 --- a/local/modules/modules/Front/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/front-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "Front" - } -} diff --git a/local/modules/modules/HookAdminHome/Config/config.xml b/local/modules/modules/HookAdminHome/Config/config.xml deleted file mode 100644 index ad256c63..00000000 --- a/local/modules/modules/HookAdminHome/Config/config.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/HookAdminHome/Config/routing.xml b/local/modules/modules/HookAdminHome/Config/routing.xml deleted file mode 100644 index a36010d7..00000000 --- a/local/modules/modules/HookAdminHome/Config/routing.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - HookAdminHome\Controller\HomeController::loadStatsAjaxAction - - - - HookAdminHome\Controller\HomeController::blockMonthSalesStatistics - \d+ - \d+ - - - - HookAdminHome\Controller\HomeController::processTemplateAction - ajax/thelia_news_feed - 1 - - - diff --git a/local/modules/modules/HookAdminHome/Controller/HomeController.php b/local/modules/modules/HookAdminHome/Controller/HomeController.php deleted file mode 100644 index e3fdde8b..00000000 --- a/local/modules/modules/HookAdminHome/Controller/HomeController.php +++ /dev/null @@ -1,154 +0,0 @@ - - */ -class HomeController extends BaseAdminController -{ - /** - * Key prefix for stats cache - */ - const STATS_CACHE_KEY = "stats"; - - const RESOURCE_CODE = "admin.home"; - - public function loadStatsAjaxAction() - { - if (null !== $response = $this->checkAuth(self::RESOURCE_CODE, array(), AccessManager::VIEW)) { - return $response; - } - - $cacheExpire = ConfigQuery::getAdminCacheHomeStatsTTL(); - - /** @var AdapterInterface $cacheAdapter */ - $cacheAdapter = $this->container->get('thelia.cache'); - - $month = (int) $this->getRequest()->query->get('month', date('m')); - $year = (int) $this->getRequest()->query->get('year', date('Y')); - - $cacheKey = self::STATS_CACHE_KEY . "_" . $month . "_" . $year; - - $cacheItem = $cacheAdapter->getItem($cacheKey); - - // force flush - if ($this->getRequest()->query->get('flush', "0")) { - $cacheAdapter->deleteItem($cacheItem); - } - - if (!$cacheItem->isHit()) { - $data = $this->getStatus($month, $year); - - $cacheItem->set(json_encode($data)); - $cacheItem->expiresAfter($cacheExpire); - - if ($cacheExpire) { - $cacheAdapter->save($cacheItem); - } - } - - return $this->jsonResponse($cacheItem->get()); - } - - public function blockMonthSalesStatistics($month, $year) - { - $baseDate = sprintf("%04d-%02d", $year, $month); - - $startDate = "$baseDate-01"; - $endDate = date("Y-m-t", strtotime($startDate)); - - $prevMonthStartDate = date('Y-m-01', strtotime("$baseDate -1 month")); - $prevMonthEndDate = date("Y-m-t", strtotime($prevMonthStartDate)); - - return $this->render('block-month-sales-statistics', [ - 'startDate' => $startDate, - 'endDate' => $endDate, - 'prevMonthStartDate' => $prevMonthStartDate, - 'prevMonthEndDate' => $prevMonthEndDate, - ]); - } - - /** - * @param int $month - * @param int $year - * @return \stdClass - */ - protected function getStatus($month, $year) - { - $data = new \stdClass(); - - $data->title = $this->getTranslator()->trans( - "Stats on %month/%year", - ['%month' => $month, '%year' => $year], - HookAdminHome::DOMAIN_NAME - ); - - $data->series = []; - - /* sales */ - $data->series[] = $saleSeries = new \stdClass(); - $saleSeries->color = self::testHexColor('sales_color', '#adadad'); - $saleSeries->data = OrderQuery::getMonthlySaleStats($month, $year); - $saleSeries->valueFormat = "%1.2f " . Currency::getDefaultCurrency()->getSymbol(); - - /* new customers */ - $data->series[] = $newCustomerSeries = new \stdClass(); - $newCustomerSeries->color = self::testHexColor('customers_color', '#f39922'); - $newCustomerSeries->data = CustomerQuery::getMonthlyNewCustomersStats($month, $year); - $newCustomerSeries->valueFormat = "%d"; - - /* orders */ - $data->series[] = $orderSeries = new \stdClass(); - $orderSeries->color = self::testHexColor('orders_color', '#5cb85c'); - $orderSeries->data = OrderQuery::getMonthlyOrdersStats($month, $year); - $orderSeries->valueFormat = "%d"; - - /* first order */ - $data->series[] = $firstOrderSeries = new \stdClass(); - $firstOrderSeries->color = self::testHexColor('first_orders_color', '#5bc0de'); - $firstOrderSeries->data = OrderQuery::getFirstOrdersStats($month, $year); - $firstOrderSeries->valueFormat = "%d"; - - /* cancelled orders */ - $data->series[] = $cancelledOrderSeries = new \stdClass(); - $cancelledOrderSeries->color = self::testHexColor('cancelled_orders_color', '#d9534f'); - $cancelledOrderSeries->data = OrderQuery::getMonthlyOrdersStats($month, $year, array(5)); - $cancelledOrderSeries->valueFormat = "%d"; - - return $data; - } - - /** - * @param string $key - * @param string $default - * @return string hexadecimal color or default argument - */ - protected function testHexColor($key, $default) - { - $hexColor = $this->getRequest()->query->get($key, $default); - - return preg_match('/^#[a-f0-9]{6}$/i', $hexColor) ? $hexColor : $default; - } -} diff --git a/local/modules/modules/HookAdminHome/Hook/AdminHook.php b/local/modules/modules/HookAdminHome/Hook/AdminHook.php deleted file mode 100644 index 309b6297..00000000 --- a/local/modules/modules/HookAdminHome/Hook/AdminHook.php +++ /dev/null @@ -1,71 +0,0 @@ - - */ -class AdminHook extends BaseHook -{ - public function blockStatistics(HookRenderEvent $event) - { - $event->add($this->render('block-statistics.html')); - } - - public function blockStatisticsJs(HookRenderEvent $event) - { - $event->add($this->render('block-statistics-js.html')); - } - - public function blockSalesStatistics(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-sales-statistics.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-sales-statistics", - "title" => $this->trans("Sales statistics", [], HookAdminHome::DOMAIN_NAME), - "content" => $content - ]); - } - } - - public function blockNews(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-news.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-news", - "content" => $content - ]); - } - } - - public function blockTheliaInformation(HookRenderBlockEvent $event) - { - $content = trim($this->render("block-thelia-information.html")); - if (!empty($content)) { - $event->add([ - "id" => "block-thelia-information", - "title" => $this->trans("Thelia informations", [], HookAdminHome::DOMAIN_NAME), - "content" => $content - ]); - } - } -} diff --git a/local/modules/modules/HookAdminHome/I18n/ar_SA.php b/local/modules/modules/HookAdminHome/I18n/ar_SA.php deleted file mode 100644 index 26fc119c..00000000 --- a/local/modules/modules/HookAdminHome/I18n/ar_SA.php +++ /dev/null @@ -1,5 +0,0 @@ - 'إحصائيات عن الشهر و السنة %month/%year', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php deleted file mode 100644 index dafa0a35..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/ar_SA.php +++ /dev/null @@ -1,11 +0,0 @@ - 'تم إحباط الطلبات', - 'Average cart' => 'متوسط العربة', - 'Categories' => 'الفئات', - 'Click here' => 'انقر هنا', - 'Current version' => 'النسخة الحالية', - 'Customers' => 'العملاء', - 'Dashboard' => 'لوحة المعلومات', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php deleted file mode 100644 index b1fe273d..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/cs_CZ.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Aborted orders', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Lire la suite' => 'Lire la suite', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'Yesterday sales' => 'Yesterday sales', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/de_DE.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/de_DE.php deleted file mode 100644 index 07620ee9..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,30 +0,0 @@ - 'Abgebrochene Bestellungen', - 'Average cart' => 'Durchschnittlichen Warenkorb', - 'Categories' => 'Kategorien', - 'Click here' => 'Hier Klicken', - 'Current version' => 'Aktuelle Version', - 'Customers' => 'Kunden', - 'Dashboard' => 'Dashboard', - 'First orders' => 'Erste Bestellungen', - 'Latest version available' => 'Neueste Version verfügbar', - 'Lire la suite' => 'Weiterlesen', - 'Loading Thelia lastest news...' => 'THELIAs neuesten Nachrichten Laden ...', - 'Loading...' => 'Laden...', - 'New customers' => 'Neue Kunde', - 'Offline products' => 'Offline Produkte', - 'Online products' => 'Online Produkte', - 'Orders' => 'Bestellungen', - 'Overall sales' => 'Gesamtverkäufe', - 'Previous month sales' => 'Vorheriger Monat Verkäufe', - 'Previous year sales' => 'Vorheriges Jahr Verkäufe', - 'Products' => 'Produkte', - 'Sales' => 'Verkäufe', - 'Sales excluding shipping' => 'Verkäufe ohne Lieferung', - 'This month' => 'Diesen Monat', - 'This year' => 'Dieses Jahr', - 'Today' => 'Heute', - 'Yesterday sales' => 'Verkäufe von Gestern', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/en_US.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/en_US.php deleted file mode 100644 index 5f375765..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,33 +0,0 @@ - 'Aborted orders', - 'An error occurred while reading from JSON file' => 'An error occurred while reading from JSON file', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Read more' => 'Read more', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'YYYY-MM' => 'YYYY-MM', - 'Yesterday sales' => 'Yesterday sales', -); diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/es_ES.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/es_ES.php deleted file mode 100644 index 6537481f..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/es_ES.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Pedidos abandonados', - 'Average cart' => 'Carrito medio', - 'Categories' => 'Categorías', - 'Click here' => 'Haz clic aquí', - 'Current version' => 'Versión actual', - 'Customers' => 'Clientes', - 'Dashboard' => 'Panel de Control', - 'First orders' => 'Primeros pedidos', - 'Latest version available' => 'Última versión disponible', - 'Lire la suite' => 'Leer más', - 'Loading Thelia lastest news...' => 'Carregant Thelia últimes notícies ...', - 'Loading...' => 'Carregant ...', - 'New customers' => 'Nuevos clientes', - 'News' => 'Noticias', - 'Offline products' => 'Productos fuera de línea', - 'Online products' => 'Productos en línea', - 'Orders' => 'Pedidos', - 'Overall sales' => 'Ventas totales', - 'Previous month sales' => 'Ventas del mes anterior', - 'Previous year sales' => 'Ventas del año anterior', - 'Products' => 'Productos', - 'Sales' => 'Ventas', - 'Sales excluding shipping' => 'Ventas sin el envio', - 'This month' => 'Este mes', - 'This year' => 'Este año', - 'Today' => 'Hoy', - 'Yesterday sales' => 'Ventas de ayer', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 0d04da9d..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,33 +0,0 @@ - 'Paniers abandonnés', - 'An error occurred while reading from JSON file' => 'Désolé, une erreur s\'est produite pendant la récupération des données.', - 'Average cart' => 'Panier moyen', - 'Categories' => 'Rubriques', - 'Click here' => 'Cliquez ici', - 'Current version' => 'Version en cours', - 'Customers' => 'Clients', - 'Dashboard' => 'Tableau de bord', - 'First orders' => 'Premières commandes', - 'Latest version available' => 'Dernière version disponible', - 'Loading Thelia lastest news...' => 'Chargement des dernières information Thelia...', - 'Loading...' => 'Chargement...', - 'New customers' => 'Nouveaux clients', - 'News' => 'Actualités', - 'Offline products' => 'Produits hors ligne', - 'Online products' => 'Produits en ligne', - 'Orders' => 'Commandes', - 'Overall sales' => 'Total des ventes', - 'Previous month sales' => 'Ventes du mois précédent', - 'Previous year sales' => 'Ventes de l\'année précédente', - 'Products' => 'Produits', - 'Read more' => 'Lire la suite', - 'Sales' => 'Ventes', - 'Sales excluding shipping' => 'Ventes hors frais de port', - 'This month' => 'Ce mois', - 'This year' => 'Cette année', - 'Today' => 'Aujourd\'hui', - 'YYYY-MM' => 'MM/YYYY', - 'Yesterday sales' => 'Ventes de la veille', -); diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/it_IT.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/it_IT.php deleted file mode 100644 index de57bcf8..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Ordini annullati', - 'Average cart' => 'Carrello medio', - 'Categories' => 'Categorie', - 'Click here' => 'Clicca qui', - 'Current version' => 'Versione attuale', - 'Customers' => 'Clienti', - 'Dashboard' => 'Dashboard', - 'First orders' => 'Primi ordini', - 'Latest version available' => 'Ultima versione disponibile', - 'Lire la suite' => 'Per saperne di più', - 'Loading Thelia lastest news...' => 'Caricamento delle ultime notizie su Thelia...', - 'Loading...' => 'Caricamento...', - 'New customers' => 'Nuovi clienti', - 'News' => 'Notizie', - 'Offline products' => 'Prodotti non in linea', - 'Online products' => 'Prodotti online', - 'Orders' => 'Ordini', - 'Overall sales' => 'Vendite complessive', - 'Previous month sales' => 'Vendite del mese precedente', - 'Previous year sales' => 'Vendite dell\'anno precedente', - 'Products' => 'Prodotti', - 'Read more' => 'Per saperne di più', - 'Sales' => 'Vendite', - 'Sales excluding shipping' => 'Vendite escluse spese di spedizione', - 'This month' => 'Questo mese', - 'This year' => 'Quest\'anno', - 'Today' => 'Oggi', - 'Yesterday sales' => 'Vendite di ieri', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php deleted file mode 100644 index 7daaaee4..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/pt_BR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Ordens abortadas', - 'Click here' => 'Clique aqui', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php deleted file mode 100644 index b1fe273d..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/ru_RU.php +++ /dev/null @@ -1,31 +0,0 @@ - 'Aborted orders', - 'Average cart' => 'Average cart', - 'Categories' => 'Categories', - 'Click here' => 'Click here', - 'Current version' => 'Current version', - 'Customers' => 'Customers', - 'Dashboard' => 'Dashboard', - 'First orders' => 'First orders', - 'Latest version available' => 'Latest version available', - 'Lire la suite' => 'Lire la suite', - 'Loading Thelia lastest news...' => 'Loading Thelia lastest news...', - 'Loading...' => 'Loading...', - 'New customers' => 'New customers', - 'News' => 'News', - 'Offline products' => 'Offline products', - 'Online products' => 'Online products', - 'Orders' => 'Orders', - 'Overall sales' => 'Overall sales', - 'Previous month sales' => 'Previous month sales', - 'Previous year sales' => 'Previous year sales', - 'Products' => 'Products', - 'Sales' => 'Sales', - 'Sales excluding shipping' => 'Sales excluding shipping', - 'This month' => 'This month', - 'This year' => 'This year', - 'Today' => 'Today', - 'Yesterday sales' => 'Yesterday sales', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php b/local/modules/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 6fcb84a3..00000000 --- a/local/modules/modules/HookAdminHome/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,31 +0,0 @@ - 'İptal edilen siparişler', - 'Average cart' => 'Sepet Ortalaması', - 'Categories' => 'Katogoriler', - 'Click here' => 'Buraya tıklayın', - 'Current version' => 'Güncel Sürüm', - 'Customers' => 'müşteriler', - 'Dashboard' => 'Kontrol paneli', - 'First orders' => 'İlk emir', - 'Latest version available' => 'En son yorum elde edilebilir', - 'Lire la suite' => 'Devamını okuyun', - 'Loading Thelia lastest news...' => 'Thelia yükleme son haberler...', - 'Loading...' => 'Yükleneniyor…...', - 'New customers' => 'Yeni Müşteriler', - 'News' => 'Yeni Haberler', - 'Offline products' => 'Çevrimdışı ürünler', - 'Online products' => 'Online Ürünler', - 'Orders' => 'siparişler', - 'Overall sales' => 'Genel satış', - 'Previous month sales' => 'Önceki ay satış', - 'Previous year sales' => 'Önceki yılın satış', - 'Products' => 'ürün', - 'Sales' => 'Satış', - 'Sales excluding shipping' => 'Nakliye hariç satış', - 'This month' => 'Bu Ay', - 'This year' => 'Bu yıl', - 'Today' => 'bugün', - 'Yesterday sales' => 'Dün satış', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/cs_CZ.php b/local/modules/modules/HookAdminHome/I18n/cs_CZ.php deleted file mode 100644 index 2ff4e47b..00000000 --- a/local/modules/modules/HookAdminHome/I18n/cs_CZ.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Sales statistics', - 'Stats on %month/%year' => 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/de_DE.php b/local/modules/modules/HookAdminHome/I18n/de_DE.php deleted file mode 100644 index 4405c981..00000000 --- a/local/modules/modules/HookAdminHome/I18n/de_DE.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Verkaufsstatistiken', - 'Stats on %month/%year' => 'Statistiken für %month/%year', - 'Thelia informations' => 'Thelias Informationen', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/en_US.php b/local/modules/modules/HookAdminHome/I18n/en_US.php deleted file mode 100644 index a4d812ee..00000000 --- a/local/modules/modules/HookAdminHome/I18n/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', - 'Sales statistics' => 'Sales statistics', -); diff --git a/local/modules/modules/HookAdminHome/I18n/es_ES.php b/local/modules/modules/HookAdminHome/I18n/es_ES.php deleted file mode 100644 index fabace8e..00000000 --- a/local/modules/modules/HookAdminHome/I18n/es_ES.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Estadísticas de ventas', - 'Thelia informations' => 'información sobre Thelia', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/fr_FR.php b/local/modules/modules/HookAdminHome/I18n/fr_FR.php deleted file mode 100644 index 1fe9d72d..00000000 --- a/local/modules/modules/HookAdminHome/I18n/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Statistiques de vente', - 'Stats on %month/%year' => 'Statistiques pour %month/%year', - 'Thelia informations' => 'Informations Thelia', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/id_ID.php b/local/modules/modules/HookAdminHome/I18n/id_ID.php deleted file mode 100644 index 8cbc43ab..00000000 --- a/local/modules/modules/HookAdminHome/I18n/id_ID.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Stats on %month/%year', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/it_IT.php b/local/modules/modules/HookAdminHome/I18n/it_IT.php deleted file mode 100644 index dcab80d9..00000000 --- a/local/modules/modules/HookAdminHome/I18n/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Statistiche di vendita', - 'Thelia informations' => 'Thelia informazioni', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/ru_RU.php b/local/modules/modules/HookAdminHome/I18n/ru_RU.php deleted file mode 100644 index 2ff4e47b..00000000 --- a/local/modules/modules/HookAdminHome/I18n/ru_RU.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Sales statistics', - 'Stats on %month/%year' => 'Stats on %month/%year', - 'Thelia informations' => 'Thelia information', -]; diff --git a/local/modules/modules/HookAdminHome/I18n/tr_TR.php b/local/modules/modules/HookAdminHome/I18n/tr_TR.php deleted file mode 100644 index b8d17e2e..00000000 --- a/local/modules/modules/HookAdminHome/I18n/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Satış istatistikleri', - 'Stats on %month/%year' => '%month/%year istatistikleri', - 'Thelia informations' => 'Thelia bilgi', -]; diff --git a/local/modules/modules/HookAdminHome/LICENSE.txt b/local/modules/modules/HookAdminHome/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookAdminHome/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html deleted file mode 100644 index 59aa6ee5..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/ajax/thelia_news_feed.html +++ /dev/null @@ -1,29 +0,0 @@ -{* this template is loaded via Ajax in the login page, to prevent login page slowdown *} - -{* Set the default translation domain, that will be used by intl when the 'd' parameter is not set *} -{default_translation_domain domain='hookadminhome.bo.default'} - -
    - {loop type="feed" name="thelia_feeds" url="http://thelia.net/feeds/?lang={$lang_code}" limit="3"} - -
    - -
    -
    - {* we use unescape:"htmlall" to unescape var before truncate, to prevent a cut in the middel of an HTML entity, eg &ea... *} -

    {$DESCRIPTION|strip_tags|unescape:"htmlall"|truncate:250:"...":true nofilter}

    -
    - -
    -
    - - {/loop} -
    \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css b/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css deleted file mode 100644 index 611f6228..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/css/home.css +++ /dev/null @@ -1 +0,0 @@ -#block-information a{color:#8A8A8A}.stats{border-right:1px solid #f0f0f0;text-align:center}.stats:last-child{border-right:none}.stats h2{margin-top:0;margin-bottom:5px;font-size:30px}.stats p{margin-top:0;text-transform:uppercase;font-size:12px}@media (max-width:991px){.stats{margin-bottom:10px}.stats:nth-child(3){border-right:none}}.homepage #date-picker{text-align:center;} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less b/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less deleted file mode 100644 index a87eaab0..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/assets/less/home.less +++ /dev/null @@ -1,45 +0,0 @@ -@import "../../../../../../../../templates/backOffice/default/assets/less/bootstrap/variables.less"; -@import "../../../../../../../../templates/backOffice/default/assets/less/thelia/variables.less"; - -#block-information { - a { - color: #8A8A8A; - } -} - -.stats { - border-right: 1px solid @table-border-color; - text-align: center; - - &:last-child { - border-right: none; - } - - h2 { - margin-top: 0; - margin-bottom: 5px; - font-size: 30px; - } - - p { - margin-top: 0; - text-transform: uppercase; - font-size: @font-size-base - 1; // 12px - } -} - -@media (max-width: @screen-sm-max) { - .stats { - margin-bottom: 10px; - - &:nth-child(3) { - border-right: none; - } - } -} - -.homepage { - #date-picker { - text-align: center; - } -} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-information.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-information.html deleted file mode 100644 index 25f09269..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-information.html +++ /dev/null @@ -1,59 +0,0 @@ -{* Do not display shop information block if user none of the required authorizations *} - -{capture name="shop_information_block_content"} - {loop type="auth" name="can_view" role="ADMIN" resource="admin.customer" access="VIEW"} - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.category" access="VIEW"} - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.product" access="VIEW"} - - - - {/loop} - - {loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} - - {/loop} -{/capture} - -{if trim($smarty.capture.shop_information_block_content) ne ""} -
    -
    - {$smarty.capture.shop_information_block_content nofilter} -
    -
    -{/if} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html deleted file mode 100644 index 57f72a60..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-month-sales-statistics.html +++ /dev/null @@ -1,48 +0,0 @@ -{loop type="currency" name="default-currency" default_only="1"} -{$defaultCurrency = $SYMBOL} -{/loop} - -{if empty($startDate)}{$startDate = 'this_month'}{/if} -{if empty($startDate)}{$startDate = 'this_month'}{/if} - -{if empty($prevMonthStartDate)}{$prevMonthStartDate = 'last_month'}{/if} -{if empty($prevMonthEndDate)}{$prevMonthEndDate = 'last_month'}{/if} - -
    - - - - - - - - - - - - - - - - - - - - - - - -
    {intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate=$startDate endDate=$endDate} symbol=$defaultCurrency}
    {intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate=$startDate endDate=$endDate includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
    {intl l="Previous month sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate=$prevMonthStartDate endDate=$prevMonthEndDate} symbol=$defaultCurrency}
    {intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate=$startDate endDate=$endDate}} - {$orderCount} -
    {intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
    -
    \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news-js.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news-js.html deleted file mode 100644 index d18e1f92..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news-js.html +++ /dev/null @@ -1,7 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} - -{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news.html deleted file mode 100644 index 97bd6f99..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-news.html +++ /dev/null @@ -1,5 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} -
    -
    {intl l="Loading Thelia lastest news..." d='hookadminhome.bo.default'}
    -
    -{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html deleted file mode 100644 index 753173f8..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-sales-statistics.html +++ /dev/null @@ -1,100 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} - -{loop type="currency" name="default-currency" default_only="1"} -{$defaultCurrency = $SYMBOL} -{/loop} -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    {intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="today" endDate="today"} symbol=$defaultCurrency}
    {intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate="today" endDate="today" includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
    {intl l="Yesterday sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="yesterday" endDate="yesterday"} symbol=$defaultCurrency}
    {intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate="today" endDate="today"}} - {$orderCount} -
    {intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
    -
    -
    - -
    - {include file="block-month-sales-statistics.html"} -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - -
    {intl l="Overall sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="this_year" endDate="this_year"} symbol=$defaultCurrency}
    {intl l="Sales excluding shipping" d='hookadminhome.bo.default'} - {$salesNoShipping = {stats key="sales" startDate="this_year" endDate="this_year" includeShipping="false"}} - {format_money number=$salesNoShipping symbol=$defaultCurrency} -
    {intl l="Previous year sales" d='hookadminhome.bo.default'}{format_money number={stats key="sales" startDate="last_year" endDate="last_year"} symbol=$defaultCurrency}
    {intl l="Orders" d='hookadminhome.bo.default'} - {$orderCount = {stats key="orders" startDate="this_year" endDate="this_year"}} - {$orderCount} -
    {intl l="Average cart" d='hookadminhome.bo.default'} - {if $orderCount == 0} - {format_money number=0 symbol=$defaultCurrency} - {else} - {format_money number={($salesNoShipping/$orderCount)|round:"2"} symbol=$defaultCurrency} - {/if} -
    -
    -
    -
    -{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html deleted file mode 100644 index b346c47d..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics-js.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics.html deleted file mode 100644 index e29e7135..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-statistics.html +++ /dev/null @@ -1,34 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" resource="admin.order" access="VIEW"} -
    - -
    - {intl l='Dashboard' d='hookadminhome.bo.default'} -
    - - - - - - - -
    -
    - -
    -
    - - - - - -
    -
    - -
    - -
    -
    -
    - -
    -{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html b/local/modules/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html deleted file mode 100644 index d31df8b4..00000000 --- a/local/modules/modules/HookAdminHome/templates/backOffice/default/block-thelia-information.html +++ /dev/null @@ -1,20 +0,0 @@ -{loop type="auth" name="can_view" role="ADMIN" module="HookAdminHome" access="VIEW"} -
    - - - - - - - - - - - - - - - -
    {intl l="Current version" d='hookadminhome.bo.default'}{$THELIA_VERSION}
    {intl l="Latest version available"}{intl l="Loading..." d='hookadminhome.bo.default'}
    {intl l="News"}{intl l="Click here" d='hookadminhome.bo.default'}
    -
    -{/loop} \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/Config/config.xml b/local/modules/modules/HookAnalytics/Config/config.xml deleted file mode 100644 index 57a6cb0f..00000000 --- a/local/modules/modules/HookAnalytics/Config/config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -
    - - - - - - - - - - - - - \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/Config/module.xml b/local/modules/modules/HookAnalytics/Config/module.xml deleted file mode 100644 index fddad541..00000000 --- a/local/modules/modules/HookAnalytics/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookAnalytics\HookAnalytics - - Analytics (Google) - - - Statistiques (Google) - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookAnalytics/Config/routing.xml b/local/modules/modules/HookAnalytics/Config/routing.xml deleted file mode 100644 index 269697d7..00000000 --- a/local/modules/modules/HookAnalytics/Config/routing.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HookAnalytics\Controller\Configuration::saveAction - - - diff --git a/local/modules/modules/HookAnalytics/Controller/Configuration.php b/local/modules/modules/HookAnalytics/Controller/Configuration.php deleted file mode 100644 index dc083f55..00000000 --- a/local/modules/modules/HookAnalytics/Controller/Configuration.php +++ /dev/null @@ -1,57 +0,0 @@ - - */ -class Configuration extends BaseAdminController { - - public function saveAction() - { - - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('hookanalytics'), AccessManager::UPDATE)) { - return $response; - } - - $form = new \HookAnalytics\Form\Configuration($this->getRequest()); - $resp = array( - "error" => 0, - "message" => "" - ); - $response=null; - - try { - $vform = $this->validateForm($form); - $data = $vform->getData(); - - ConfigQuery::write("hookanalytics_trackingcode", $data["trackingcode"], false, true); - - } catch (\Exception $e) { - $resp["error"] = 1; - $resp["message"] = $e->getMessage(); - } - - return JsonResponse::create($resp); - } - -} \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/Form/Configuration.php b/local/modules/modules/HookAnalytics/Form/Configuration.php deleted file mode 100644 index 01db6191..00000000 --- a/local/modules/modules/HookAnalytics/Form/Configuration.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class Configuration extends BaseForm { - - protected function buildForm() - { - $form = $this->formBuilder; - - $value = ConfigQuery::read("hookanalytics_trackingcode", ""); - $form->add( - "trackingcode", - "text", - array( - 'data' => $value, - 'label' => Translator::getInstance()->trans("Tracking Code"), - 'label_attr' => array( - 'for' => "trackingcode" - ), - ) - ); - - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "hookanalytics"; - } - - -} \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/Hook/FrontHook.php b/local/modules/modules/HookAnalytics/Hook/FrontHook.php deleted file mode 100644 index 11bd3c6c..00000000 --- a/local/modules/modules/HookAnalytics/Hook/FrontHook.php +++ /dev/null @@ -1,33 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainHeadBottom(HookRenderEvent $event) - { - $value = trim(ConfigQuery::read("hookanalytics_trackingcode", "")); - if ("" != $value){ - $event->add($value); - } - } -} \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/HookAnalytics.php b/local/modules/modules/HookAnalytics/HookAnalytics.php deleted file mode 100644 index 2636e381..00000000 --- a/local/modules/modules/HookAnalytics/HookAnalytics.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Ein Fehler ist aufgetreten', - 'Edit your analytics configuration.' => 'Analytics-Konfiguration bearbeiten.', - 'Save' => 'Speichern', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/backOffice/default/en_US.php b/local/modules/modules/HookAnalytics/I18n/backOffice/default/en_US.php deleted file mode 100644 index ef8b1f98..00000000 --- a/local/modules/modules/HookAnalytics/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'An error occured', - 'Edit your analytics configuration.' => 'Edit your analytics configuration.', - 'Save' => 'Save', -); diff --git a/local/modules/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php b/local/modules/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 56712bd3..00000000 --- a/local/modules/modules/HookAnalytics/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Une erreur est survenue', - 'Edit your analytics configuration.' => 'Modifier la configuration des statistiques', - 'Save' => ' Enregistrer', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/backOffice/default/it_IT.php b/local/modules/modules/HookAnalytics/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 0c59bda5..00000000 --- a/local/modules/modules/HookAnalytics/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Salvare', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php b/local/modules/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 8e913080..00000000 --- a/local/modules/modules/HookAnalytics/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Bir hata meydana geldi', - 'Edit your analytics configuration.' => 'Analytics yapılandırmanızı düzenleyin.', - 'Save' => 'kaydet', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/de_DE.php b/local/modules/modules/HookAnalytics/I18n/de_DE.php deleted file mode 100644 index e1b30511..00000000 --- a/local/modules/modules/HookAnalytics/I18n/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Tracking-Code', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/en_US.php b/local/modules/modules/HookAnalytics/I18n/en_US.php deleted file mode 100644 index ba8939d7..00000000 --- a/local/modules/modules/HookAnalytics/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Tracking Code', -); diff --git a/local/modules/modules/HookAnalytics/I18n/fr_FR.php b/local/modules/modules/HookAnalytics/I18n/fr_FR.php deleted file mode 100644 index ab7c10b8..00000000 --- a/local/modules/modules/HookAnalytics/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Code de suivi', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 938a9f4a..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS-Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'YouTube', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 534a4d03..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -); diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 7b64f075..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'Flux RSS', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 15298b70..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index b951272b..00000000 --- a/local/modules/modules/HookAnalytics/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Beslemesi', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/it_IT.php b/local/modules/modules/HookAnalytics/I18n/it_IT.php deleted file mode 100644 index bcce8768..00000000 --- a/local/modules/modules/HookAnalytics/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Codice di monitoraggio', -]; diff --git a/local/modules/modules/HookAnalytics/I18n/tr_TR.php b/local/modules/modules/HookAnalytics/I18n/tr_TR.php deleted file mode 100644 index 3e16a023..00000000 --- a/local/modules/modules/HookAnalytics/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'İzleme Kodu', -]; diff --git a/local/modules/modules/HookAnalytics/LICENSE.txt b/local/modules/modules/HookAnalytics/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookAnalytics/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookAnalytics/composer.json b/local/modules/modules/HookAnalytics/composer.json deleted file mode 100644 index efe5231d..00000000 --- a/local/modules/modules/HookAnalytics/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-analytics-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookAnalytics" - } -} diff --git a/local/modules/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js b/local/modules/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index fe180bb7..00000000 --- a/local/modules/modules/HookAnalytics/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,29 +0,0 @@ -$(document).ready(function() { - $("#hookanalytics-form").on("submit", function(e, data){ - e.preventDefault(); - var form = $(this); - - $('body').append(''); - - $.ajax({ - url: form.attr('action'), - type: form.attr('method'), - data: form.serialize() - }).done(function(){ - $("#loading-event").remove(); - }) - .success(function(data) { - if (data.error != 0) { - $("#loading-event").remove(); - $('#hookanalytics-failed-body').html(data.message); - $("#hookanalytics-failed").modal("show"); - } - }) - .fail(function(jqXHR, textStatus, errorThrown){ - $("#loading-event").remove(); - $('#hookanalytics-failed-body').html(jqXHR.responseJSON.message); - $("#hookanalytics-failed").modal("show"); - }); - - }); -}); \ No newline at end of file diff --git a/local/modules/modules/HookAnalytics/templates/backOffice/default/module_configuration.html b/local/modules/modules/HookAnalytics/templates/backOffice/default/module_configuration.html deleted file mode 100644 index c80b88ab..00000000 --- a/local/modules/modules/HookAnalytics/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,52 +0,0 @@ - - - -
    -
    - -
    - {intl l='Edit your analytics configuration.'} -
    - -
    -
    - - {form name="hookanalytics.configuration.form"} - - - {form_hidden_fields} - - {form_field field='trackingcode'} -
    - - -
    - {/form_field} - - - - {/form} - -
    - -
    - -
    -
    - - - - diff --git a/local/modules/modules/HookCart/Config/config.xml b/local/modules/modules/HookCart/Config/config.xml deleted file mode 100644 index f8c3dce8..00000000 --- a/local/modules/modules/HookCart/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/modules/modules/HookCart/Config/module.xml b/local/modules/modules/HookCart/Config/module.xml deleted file mode 100644 index d01aadf0..00000000 --- a/local/modules/modules/HookCart/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCart\HookCart - - Block Cart - - - Bloc Panier - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookCart/HookCart.php b/local/modules/modules/HookCart/HookCart.php deleted file mode 100644 index da8d0e9a..00000000 --- a/local/modules/modules/HookCart/HookCart.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Warenkorb', - 'Checkout' => 'Zur Kasse', - 'Remove' => 'Entfernen', - 'View Cart' => 'Warenkorb anzeigen', - 'You have no items in your shopping cart.' => 'Sie haben keine Produkte im Warenkorb', -]; diff --git a/local/modules/modules/HookCart/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookCart/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 3f99d2c5..00000000 --- a/local/modules/modules/HookCart/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Cart', - 'Checkout' => 'Checkout', - 'Remove' => 'Remove', - 'View Cart' => 'View Cart', - 'You have no items in your shopping cart.' => 'You have no items in your shopping cart.', -); diff --git a/local/modules/modules/HookCart/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookCart/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 088f21ef..00000000 --- a/local/modules/modules/HookCart/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Panier', - 'Checkout' => 'Commande', - 'Remove' => 'Supprimer', - 'View Cart' => 'Voir le panier', - 'You have no items in your shopping cart.' => 'Vous n\'avez pas de produit dans votre panier.', -]; diff --git a/local/modules/modules/HookCart/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookCart/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index dac05d5d..00000000 --- a/local/modules/modules/HookCart/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Carrello', - 'Checkout' => 'Procedi all\'acquisto', - 'Remove' => 'Rimuovi', - 'View Cart' => 'Visualizza il carrello', - 'You have no items in your shopping cart.' => 'Non hai nessun prodotto nel tuo carrello.', -]; diff --git a/local/modules/modules/HookCart/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookCart/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 04f4cc85..00000000 --- a/local/modules/modules/HookCart/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Sepet', - 'Checkout' => 'Ödeme yap', - 'Remove' => 'Kaldır', - 'View Cart' => 'Sepeti Görüntüle', - 'You have no items in your shopping cart.' => 'Sepetinizde hiç ürün yok.', -]; diff --git a/local/modules/modules/HookCart/LICENSE.txt b/local/modules/modules/HookCart/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookCart/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookCart/composer.json b/local/modules/modules/HookCart/composer.json deleted file mode 100644 index f56a5cb6..00000000 --- a/local/modules/modules/HookCart/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-cart-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCart" - } -} diff --git a/local/modules/modules/HookCart/templates/frontOffice/default/assets/css/styles.css b/local/modules/modules/HookCart/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/modules/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index a5df3814..00000000 --- a/local/modules/modules/HookCart/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookCart/templates/frontOffice/default/mini-cart.html b/local/modules/modules/HookCart/templates/frontOffice/default/mini-cart.html deleted file mode 100644 index aa128a08..00000000 --- a/local/modules/modules/HookCart/templates/frontOffice/default/mini-cart.html +++ /dev/null @@ -1,81 +0,0 @@ -{ifloop rel="cartloop"} - -{/ifloop} -{elseloop rel="cartloop"} - -{/elseloop} diff --git a/local/modules/modules/HookContact/Config/config.xml b/local/modules/modules/HookContact/Config/config.xml deleted file mode 100644 index 5c54bc9c..00000000 --- a/local/modules/modules/HookContact/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookContact/Config/module.xml b/local/modules/modules/HookContact/Config/module.xml deleted file mode 100644 index e5e2b1da..00000000 --- a/local/modules/modules/HookContact/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookContact\HookContact - - Block Contact - - - Bloc Contact - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookContact/Hook/FrontHook.php b/local/modules/modules/HookContact/Hook/FrontHook.php deleted file mode 100644 index 8ed956f5..00000000 --- a/local/modules/modules/HookContact/Hook/FrontHook.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -class FrontHook extends BaseHook -{ - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content) { - $event->add( - array( - "id" => "contact-footer-body", - "class" => "contact", - "title" => $this->trans("Contact", array(), "hookcontact"), - "content" => $content - ) - ); - } - } -} diff --git a/local/modules/modules/HookContact/HookContact.php b/local/modules/modules/HookContact/HookContact.php deleted file mode 100644 index 2b8df283..00000000 --- a/local/modules/modules/HookContact/HookContact.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Kontakt', -]; diff --git a/local/modules/modules/HookContact/I18n/en_US.php b/local/modules/modules/HookContact/I18n/en_US.php deleted file mode 100644 index 55aea96d..00000000 --- a/local/modules/modules/HookContact/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contact', -); diff --git a/local/modules/modules/HookContact/I18n/fr_FR.php b/local/modules/modules/HookContact/I18n/fr_FR.php deleted file mode 100644 index 896efb7c..00000000 --- a/local/modules/modules/HookContact/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contact', -]; diff --git a/local/modules/modules/HookContact/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookContact/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index d8eb50ed..00000000 --- a/local/modules/modules/HookContact/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Nous trouver, Nous contacter', -]; diff --git a/local/modules/modules/HookContact/I18n/it_IT.php b/local/modules/modules/HookContact/I18n/it_IT.php deleted file mode 100644 index 11ee0ec2..00000000 --- a/local/modules/modules/HookContact/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Contatta', -]; diff --git a/local/modules/modules/HookContact/I18n/tr_TR.php b/local/modules/modules/HookContact/I18n/tr_TR.php deleted file mode 100644 index 31680df5..00000000 --- a/local/modules/modules/HookContact/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'İletişim', -]; diff --git a/local/modules/modules/HookContact/LICENSE.txt b/local/modules/modules/HookContact/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookContact/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookContact/composer.json b/local/modules/modules/HookContact/composer.json deleted file mode 100644 index 2ecdb22a..00000000 --- a/local/modules/modules/HookContact/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-contact-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookContact" - } -} diff --git a/local/modules/modules/HookContact/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookContact/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 9eea38b6..00000000 --- a/local/modules/modules/HookContact/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,25 +0,0 @@ -
    - -
      -
    • -
      - {config key="store_address1"} {config key="store_address2"} {config key="store_address3"}
      - {config key="store_zipcode"} - - {config key="store_city"} - {if {config key="store_country"} } - {loop type="country" name="address.country.title" id={config key="store_country"}}, {$TITLE}{/loop} - {/if} - -
      -
    • - {if {config key="store_phone"} } -
    • - {config key="store_phone"} -
    • - {/if} -
    • - {intl l="Find us, Contact us" d="hookcontact.fo.default"} -
    • -
    -
    diff --git a/local/modules/modules/HookCurrency/Config/config.xml b/local/modules/modules/HookCurrency/Config/config.xml deleted file mode 100644 index 1b5deb78..00000000 --- a/local/modules/modules/HookCurrency/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookCurrency/Config/module.xml b/local/modules/modules/HookCurrency/Config/module.xml deleted file mode 100644 index e71a5278..00000000 --- a/local/modules/modules/HookCurrency/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCurrency\HookCurrency - - Block Currency - - - Bloc Devise - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookCurrency/HookCurrency.php b/local/modules/modules/HookCurrency/HookCurrency.php deleted file mode 100644 index 63d66296..00000000 --- a/local/modules/modules/HookCurrency/HookCurrency.php +++ /dev/null @@ -1,20 +0,0 @@ - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookCurrency/composer.json b/local/modules/modules/HookCurrency/composer.json deleted file mode 100644 index 58767943..00000000 --- a/local/modules/modules/HookCurrency/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-currency-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCurrency" - } -} diff --git a/local/modules/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 0a8faad9..00000000 --- a/local/modules/modules/HookCurrency/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookCustomer/Config/config.xml b/local/modules/modules/HookCustomer/Config/config.xml deleted file mode 100644 index 63a29ce5..00000000 --- a/local/modules/modules/HookCustomer/Config/config.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - diff --git a/local/modules/modules/HookCustomer/Config/module.xml b/local/modules/modules/HookCustomer/Config/module.xml deleted file mode 100644 index d4673f06..00000000 --- a/local/modules/modules/HookCustomer/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookCustomer\HookCustomer - - Block Customer - - - Bloc Client - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookCustomer/HookCustomer.php b/local/modules/modules/HookCustomer/HookCustomer.php deleted file mode 100644 index eab3f96a..00000000 --- a/local/modules/modules/HookCustomer/HookCustomer.php +++ /dev/null @@ -1,20 +0,0 @@ - 'E-mail Adresse', - 'Forgot your Password?' => 'Haben sir Ihr Passwort vergessen ?', - 'Log In!' => 'Log In!', - 'Log out!' => 'Log out!', - 'My Account' => 'Mein Kundenkonto', - 'Password' => 'Passwort', - 'Register' => 'Registrieren', - 'Register!' => 'Registrieren!', - 'Sign In' => 'Registrieren', -]; diff --git a/local/modules/modules/HookCustomer/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookCustomer/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 102c3129..00000000 --- a/local/modules/modules/HookCustomer/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Email address', - 'Forgot your Password?' => 'Forgot your Password?', - 'Log In!' => 'Log In!', - 'Log out!' => 'Log out!', - 'My Account' => 'My Account', - 'Password' => 'Password', - 'Register' => 'Register', - 'Register!' => 'Register!', - 'Sign In' => 'Sign In', -); diff --git a/local/modules/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 8a899390..00000000 --- a/local/modules/modules/HookCustomer/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Adresse e-mail', - 'Forgot your Password?' => 'Mot de passe oublié ?', - 'Log In!' => 'Se connecter', - 'Log out!' => 'Se déconnecter', - 'My Account' => 'Mon compte', - 'Password' => 'Mot de passe', - 'Register' => 'S\'inscrire', - 'Register!' => 'Enregistrez-vous !', - 'Sign In' => 'Se connecter', -]; diff --git a/local/modules/modules/HookCustomer/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookCustomer/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index aba7ec5d..00000000 --- a/local/modules/modules/HookCustomer/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Indirizzo email', - 'Forgot your Password?' => 'Hai dimenticato la password?', - 'Log In!' => 'Accedi!', - 'Log out!' => 'Esci!', - 'My Account' => 'Mio account', - 'Password' => 'Password', - 'Register' => 'Registrati', - 'Register!' => 'Registrati!', - 'Sign In' => 'Accedi', -]; diff --git a/local/modules/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 83c6b6fd..00000000 --- a/local/modules/modules/HookCustomer/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,13 +0,0 @@ - 'Eposta adresi', - 'Forgot your Password?' => 'Parolanızı mı unuttunuz?', - 'Log In!' => 'Oturum aç!', - 'Log out!' => 'Çıkış Yap!', - 'My Account' => 'Hesabım', - 'Password' => 'Parola', - 'Register' => 'Kaydol', - 'Register!' => 'Kayıt ol!', - 'Sign In' => 'Oturum Aç', -]; diff --git a/local/modules/modules/HookCustomer/LICENSE.txt b/local/modules/modules/HookCustomer/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookCustomer/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookCustomer/composer.json b/local/modules/modules/HookCustomer/composer.json deleted file mode 100644 index d081b403..00000000 --- a/local/modules/modules/HookCustomer/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-customer-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookCustomer" - } -} diff --git a/local/modules/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css b/local/modules/modules/HookCustomer/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/modules/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 13d84fd5..00000000 --- a/local/modules/modules/HookCustomer/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,43 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookLang/Config/config.xml b/local/modules/modules/HookLang/Config/config.xml deleted file mode 100644 index d30cb542..00000000 --- a/local/modules/modules/HookLang/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookLang/Config/module.xml b/local/modules/modules/HookLang/Config/module.xml deleted file mode 100644 index a6be2dcc..00000000 --- a/local/modules/modules/HookLang/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookLang\HookLang - - Block Languages - - - Bloc langages - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookLang/HookLang.php b/local/modules/modules/HookLang/HookLang.php deleted file mode 100644 index 2ab93ac2..00000000 --- a/local/modules/modules/HookLang/HookLang.php +++ /dev/null @@ -1,20 +0,0 @@ - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookLang/composer.json b/local/modules/modules/HookLang/composer.json deleted file mode 100644 index c5338646..00000000 --- a/local/modules/modules/HookLang/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-lang-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookLang" - } -} diff --git a/local/modules/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index a61a7a1e..00000000 --- a/local/modules/modules/HookLang/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookLinks/Config/config.xml b/local/modules/modules/HookLinks/Config/config.xml deleted file mode 100644 index 6036b5d0..00000000 --- a/local/modules/modules/HookLinks/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookLinks/Config/module.xml b/local/modules/modules/HookLinks/Config/module.xml deleted file mode 100644 index 09605839..00000000 --- a/local/modules/modules/HookLinks/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookLinks\HookLinks - - Block Useful links - - - Bloc Liens utiles - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookLinks/Hook/FrontHook.php b/local/modules/modules/HookLinks/Hook/FrontHook.php deleted file mode 100644 index 3f0a4829..00000000 --- a/local/modules/modules/HookLinks/Hook/FrontHook.php +++ /dev/null @@ -1,38 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "links-footer-body", - "class" => "default", - "title" => $this->trans("Useful links", array(), "hooklinks"), - "content" => $content - )); - } - } - -} \ No newline at end of file diff --git a/local/modules/modules/HookLinks/HookLinks.php b/local/modules/modules/HookLinks/HookLinks.php deleted file mode 100644 index 28e00f98..00000000 --- a/local/modules/modules/HookLinks/HookLinks.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Nützliche Links', -]; diff --git a/local/modules/modules/HookLinks/I18n/en_US.php b/local/modules/modules/HookLinks/I18n/en_US.php deleted file mode 100644 index 531cd8a6..00000000 --- a/local/modules/modules/HookLinks/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Useful links', -); diff --git a/local/modules/modules/HookLinks/I18n/fr_FR.php b/local/modules/modules/HookLinks/I18n/fr_FR.php deleted file mode 100644 index 95d22cf1..00000000 --- a/local/modules/modules/HookLinks/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Liens utiles', -]; diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 1dc47f8d..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Warenkorb', - 'Checkout' => 'Zur Kasse', - 'Log out!' => 'Log out!', - 'Login' => 'Anmeldung', - 'My Account' => 'Mein Kundenkonto', - 'Register' => 'Registrieren', -]; diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 33a0bb71..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Cart', - 'Checkout' => 'Checkout', - 'Log out!' => 'Log out!', - 'Login' => 'Login', - 'My Account' => 'My Account', - 'Register' => 'Register', -); diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 8b8c6bf4..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Panier', - 'Checkout' => 'Commander', - 'Log out!' => 'Se déconnecter', - 'Login' => 'Connexion', - 'My Account' => 'Mon compte', - 'Register' => 'S\'inscrire', -]; diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index fca67d76..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Carrello', - 'Checkout' => 'Procedi all\'acquisto', - 'Log out!' => 'Esci!', - 'Login' => 'Login', - 'My Account' => 'Mio account', - 'Register' => 'Registrati', -]; diff --git a/local/modules/modules/HookLinks/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookLinks/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 88c01521..00000000 --- a/local/modules/modules/HookLinks/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Sepet', - 'Checkout' => 'Ödeme yap', - 'Log out!' => 'Çıkış Yap!', - 'Login' => 'Giriş yap', - 'My Account' => 'Hesabım', - 'Register' => 'Kaydol', -]; diff --git a/local/modules/modules/HookLinks/I18n/it_IT.php b/local/modules/modules/HookLinks/I18n/it_IT.php deleted file mode 100644 index 6120aafa..00000000 --- a/local/modules/modules/HookLinks/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Link utili', -]; diff --git a/local/modules/modules/HookLinks/I18n/tr_TR.php b/local/modules/modules/HookLinks/I18n/tr_TR.php deleted file mode 100644 index 3f99d1ee..00000000 --- a/local/modules/modules/HookLinks/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Faydalı Linkler', -]; diff --git a/local/modules/modules/HookLinks/LICENSE.txt b/local/modules/modules/HookLinks/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookLinks/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookLinks/composer.json b/local/modules/modules/HookLinks/composer.json deleted file mode 100644 index 23abd78e..00000000 --- a/local/modules/modules/HookLinks/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-links-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookLinks" - } -} diff --git a/local/modules/modules/HookLinks/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookLinks/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 08607f06..00000000 --- a/local/modules/modules/HookLinks/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,15 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookNavigation/Config/config.xml b/local/modules/modules/HookNavigation/Config/config.xml deleted file mode 100644 index 1da4b2b4..00000000 --- a/local/modules/modules/HookNavigation/Config/config.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -
    - - - - - - - - - - - diff --git a/local/modules/modules/HookNavigation/Config/module.xml b/local/modules/modules/HookNavigation/Config/module.xml deleted file mode 100644 index dc090ec9..00000000 --- a/local/modules/modules/HookNavigation/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookNavigation\HookNavigation - - Block Navigation - - - Bloc Menu - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookNavigation/Config/routing.xml b/local/modules/modules/HookNavigation/Config/routing.xml deleted file mode 100644 index 2182aa3c..00000000 --- a/local/modules/modules/HookNavigation/Config/routing.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - HookNavigation:HookNavigationConfig:default - - - HookNavigation:HookNavigationConfig:save - - diff --git a/local/modules/modules/HookNavigation/Controller/HookNavigationConfigController.php b/local/modules/modules/HookNavigation/Controller/HookNavigationConfigController.php deleted file mode 100644 index 04b7ca5f..00000000 --- a/local/modules/modules/HookNavigation/Controller/HookNavigationConfigController.php +++ /dev/null @@ -1,75 +0,0 @@ - - OpenStudio - */ -class HookNavigationConfigController extends BaseAdminController -{ - public function defaultAction() - { - $bodyConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID); - $bottomConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID); - - $this->getSession()->getFlashBag()->set('bodyConfig', $bodyConfig); - $this->getSession()->getFlashBag()->set('bottomConfig', $bottomConfig); - - return $this->render('hooknavigation-configuration'); - } - - public function saveAction() - { - $baseForm = $this->createForm('hooknavigation.configuration'); - - $errorMessage = null; - - try { - $form = $this->validateForm($baseForm); - $data = $form->getData(); - - HookNavigation::setConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID, is_bool($data['footer_body_folder_id']) ? (int) ($data['footer_body_folder_id']) : $data['footer_body_folder_id']); - HookNavigation::setConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID, is_bool($data['footer_bottom_folder_id']) ? (int) ($data['footer_bottom_folder_id']) : $data['footer_bottom_folder_id']); - } catch (FormValidationException $ex) { - // Invalid data entered - $errorMessage = $this->createStandardFormValidationErrorMessage($ex); - } catch (\Exception $ex) { - // Any other error - $errorMessage = $this->getTranslator()->trans('Sorry, an error occurred: %err', ['%err' => $ex->getMessage()], [], HookNavigation::MESSAGE_DOMAIN); - } - - if (null !== $errorMessage) { - // Mark the form as with error - $baseForm->setErrorMessage($errorMessage); - - // Send the form and the error to the parser - $this->getParserContext() - ->addForm($baseForm) - ->setGeneralError($errorMessage) - ; - } else { - $this->getParserContext() - ->set('success', true) - ; - } - - return $this->defaultAction(); - } -} diff --git a/local/modules/modules/HookNavigation/Form/HookNavigationConfigForm.php b/local/modules/modules/HookNavigation/Form/HookNavigationConfigForm.php deleted file mode 100644 index 84221749..00000000 --- a/local/modules/modules/HookNavigation/Form/HookNavigationConfigForm.php +++ /dev/null @@ -1,55 +0,0 @@ - - OpenStudio - */ -class HookNavigationConfigForm extends BaseForm -{ - public function getName() - { - return 'hooknavigation_configuration'; - } - - protected function buildForm() - { - $this->formBuilder - ->add( - 'footer_body_folder_id', - 'number', - [ - 'constraints' => [ - new NotBlank(), - ], - 'label' => $this->translator->trans('Folder in footer body', [], HookNavigation::MESSAGE_DOMAIN), - ] - ) - ->add( - 'footer_bottom_folder_id', - 'number', - [ - 'constraints' => [ - new NotBlank(), - ], - 'label' => $this->translator->trans('Folder in footer bottom', [], HookNavigation::MESSAGE_DOMAIN), - ] - ); - } -} diff --git a/local/modules/modules/HookNavigation/Hook/FrontHook.php b/local/modules/modules/HookNavigation/Hook/FrontHook.php deleted file mode 100644 index a108f3a0..00000000 --- a/local/modules/modules/HookNavigation/Hook/FrontHook.php +++ /dev/null @@ -1,51 +0,0 @@ -, Etienne PERRIERE - OpenStudio - */ -class FrontHook extends BaseHook -{ - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $bodyConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BODY_FOLDER_ID); - - $content = trim($this->render('main-footer-body.html', ['bodyFolderId' => $bodyConfig])); - if ('' != $content) { - $event->add(array( - 'id' => 'navigation-footer-body', - 'class' => 'links', - 'title' => $this->trans('Latest articles', array(), HookNavigation::MESSAGE_DOMAIN), - 'content' => $content, - )); - } - } - - public function onMainFooterBottom(HookRenderEvent $event) - { - $bottomConfig = HookNavigation::getConfigValue(HookNavigationConfigValue::FOOTER_BOTTOM_FOLDER_ID); - - $content = $this->render('main-footer-bottom.html', ['bottomFolderId' => $bottomConfig]); - $event->add($content); - } -} diff --git a/local/modules/modules/HookNavigation/HookNavigation.php b/local/modules/modules/HookNavigation/HookNavigation.php deleted file mode 100644 index a878b090..00000000 --- a/local/modules/modules/HookNavigation/HookNavigation.php +++ /dev/null @@ -1,24 +0,0 @@ - 'Kategorien', - 'Folder in footer body' => 'Ordner in Fußzeile', - 'Folder in footer bottom' => 'Ordner in Fußzeile', - 'Home' => 'Startseite', - 'HookNavigation configuration' => 'HookNavigation Konfiguration', - 'No articles currently' => 'Zur Zeit keine Artikel', - 'Toggle navigation' => 'Navigation umschalten', -]; diff --git a/local/modules/modules/HookNavigation/I18n/backOffice/default/en_US.php b/local/modules/modules/HookNavigation/I18n/backOffice/default/en_US.php deleted file mode 100644 index 88e66b06..00000000 --- a/local/modules/modules/HookNavigation/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Configuration correctly saved', - 'Configure hooknavigation' => 'Configure hooknavigation', - 'Home' => 'Home', - 'HookNavigation configuration' => 'HookNavigation configuration', - 'Modules' => 'Modules', - 'Select a folder' => 'Select a folder', -); diff --git a/local/modules/modules/HookNavigation/I18n/backOffice/default/fr_FR.php b/local/modules/modules/HookNavigation/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 04211f37..00000000 --- a/local/modules/modules/HookNavigation/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Configuration sauvegardée correctement', - 'Configure hooknavigation' => 'Configurer Bloc Menu', - 'Home' => 'Accueil', - 'HookNavigation configuration' => 'Configuration de Block Menu', - 'Modules' => 'Modules', - 'Select a folder' => 'Sélectionner un dossier', -]; diff --git a/local/modules/modules/HookNavigation/I18n/backOffice/default/it_IT.php b/local/modules/modules/HookNavigation/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 7b04d958..00000000 --- a/local/modules/modules/HookNavigation/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Home', - 'Modules' => 'Moduli', - 'Select a folder' => 'Seleziona una cartella', -]; diff --git a/local/modules/modules/HookNavigation/I18n/backOffice/default/tr_TR.php b/local/modules/modules/HookNavigation/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index 6816d794..00000000 --- a/local/modules/modules/HookNavigation/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,11 +0,0 @@ - 'Katogoriler', - 'Folder in footer body' => 'Altbilgi vücut klasöründe', - 'Folder in footer bottom' => 'Altbilgi alt klasöründe', - 'Home' => 'Ana sayfa', - 'HookNavigation configuration' => 'HookNavigation yapılandırma', - 'No articles currently' => 'Hiç makale yok', - 'Toggle navigation' => 'Navigasyonu değiştir', -]; diff --git a/local/modules/modules/HookNavigation/I18n/en_US.php b/local/modules/modules/HookNavigation/I18n/en_US.php deleted file mode 100644 index cfcc1fe2..00000000 --- a/local/modules/modules/HookNavigation/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Folder in footer body', - 'Folder in footer bottom' => 'Folder in footer bottom', - 'Latest articles' => 'Latest articles', - 'Sorry, an error occurred: %err' => 'Sorry, an error occurred: %err', -); diff --git a/local/modules/modules/HookNavigation/I18n/fr_FR.php b/local/modules/modules/HookNavigation/I18n/fr_FR.php deleted file mode 100644 index 28b686ad..00000000 --- a/local/modules/modules/HookNavigation/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Dossier du pied de page', - 'Folder in footer bottom' => 'Dossier sous le pied de page', - 'Latest articles' => 'Derniers articles', - 'Sorry, an error occurred: %err' => 'Désolé, une erreur est survenue: %err', -]; diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index c32bbb2a..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Neueste Artikel', - 'No articles currently' => 'Zur Zeit keine Artikel', -]; diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/en_US.php deleted file mode 100644 index d63a3877..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Categories', - 'Home' => 'Home', - 'No articles currently' => 'No articles currently', - 'Toggle navigation' => 'Toggle navigation', -); diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 6d26f6f9..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Rubriques', - 'Home' => 'Accueil', - 'No articles currently' => 'Aucun article pour le moment', - 'Toggle navigation' => 'Basculer la navigation', -]; diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index c7165516..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Categorie', - 'Home' => 'Home', - 'No articles currently' => 'Attualmente non sono presenti articoli', - 'Toggle navigation' => 'Toggle navigation', -]; diff --git a/local/modules/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index a76a2b01..00000000 --- a/local/modules/modules/HookNavigation/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Son Makaleler', - 'No articles currently' => 'Hiç makale yok', -]; diff --git a/local/modules/modules/HookNavigation/I18n/it_IT.php b/local/modules/modules/HookNavigation/I18n/it_IT.php deleted file mode 100644 index 8ae2a7f1..00000000 --- a/local/modules/modules/HookNavigation/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Ultimi articoli', -]; diff --git a/local/modules/modules/HookNavigation/LICENSE.txt b/local/modules/modules/HookNavigation/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookNavigation/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php b/local/modules/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php deleted file mode 100644 index 925f6c5e..00000000 --- a/local/modules/modules/HookNavigation/Model/Config/Base/HookNavigationConfigValue.php +++ /dev/null @@ -1,23 +0,0 @@ - - - -
    -
    - {intl l="Configure hooknavigation" d="hooknavigation.bo.default"} -
    - -
    -
    - {if $success} -
    - {intl l="Configuration correctly saved" d="hooknavigation.bo.default"} -
    - {/if} - - {form name="hooknavigation.configuration"} - - {include "includes/inner-form-toolbar.html" hide_flags = 1 close_url={url path='/admin/modules'}} -
    - - {form_field form=$form field="success_url"} - - {/form_field} - - {form_hidden_fields form=$form} - - {flash type="bodyConfig"} - {assign var='bodyConfig' value=$MESSAGE} - {/flash} - {flash type="bottomConfig"} - {assign var='bottomConfig' value=$MESSAGE} - {/flash} - - {form_field form=$form field="footer_body_folder_id"} -
    - - - - - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
    - {/form_field} - - {form_field form=$form field="footer_bottom_folder_id"} -
    - - - - - {if ! empty($label_attr.help)} - {$label_attr.help} - {/if} -
    - {/form_field} - - {include "includes/inner-form-toolbar.html" hide_flags = 1 close_url={url path='/admin/modules'} page_bottom = 1} - - {/form} -
    -
    -
    - -{/block} - -{block name="javascript-initialization"} -{/block} \ No newline at end of file diff --git a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 4834c61d..00000000 --- a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,17 +0,0 @@ -{ifloop rel="blog.articles"} - -{/ifloop} -{elseloop rel="blog.articles"} -
      -
    • {intl l="No articles currently" d="hooknavigation.fo.default"}
    • -
    -{/elseloop} \ No newline at end of file diff --git a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html b/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html deleted file mode 100644 index 80b298ef..00000000 --- a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-footer-bottom.html +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html b/local/modules/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html deleted file mode 100644 index 62514618..00000000 --- a/local/modules/modules/HookNavigation/templates/frontOffice/default/main-navbar-primary.html +++ /dev/null @@ -1,56 +0,0 @@ - - -{* classic navbar without dropdown - -*} \ No newline at end of file diff --git a/local/modules/modules/HookNewsletter/Config/config.xml b/local/modules/modules/HookNewsletter/Config/config.xml deleted file mode 100644 index 9d66a2fe..00000000 --- a/local/modules/modules/HookNewsletter/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookNewsletter/Config/module.xml b/local/modules/modules/HookNewsletter/Config/module.xml deleted file mode 100644 index 19c5c441..00000000 --- a/local/modules/modules/HookNewsletter/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookNewsletter\HookNewsletter - - Block Newsletter - - - Bloc Newsletter - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookNewsletter/Hook/FrontHook.php b/local/modules/modules/HookNewsletter/Hook/FrontHook.php deleted file mode 100644 index 0d1b9688..00000000 --- a/local/modules/modules/HookNewsletter/Hook/FrontHook.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "newsletter-footer-body", - "class" => "newsletter", - "title" => $this->trans("Newsletter", array(), "hooknewsletter"), - "content" => $content - )); - } - } -} \ No newline at end of file diff --git a/local/modules/modules/HookNewsletter/HookNewsletter.php b/local/modules/modules/HookNewsletter/HookNewsletter.php deleted file mode 100644 index 887b4a07..00000000 --- a/local/modules/modules/HookNewsletter/HookNewsletter.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Newsletter', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/en_US.php b/local/modules/modules/HookNewsletter/I18n/en_US.php deleted file mode 100644 index eeea5e3d..00000000 --- a/local/modules/modules/HookNewsletter/I18n/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Newsletter', -); diff --git a/local/modules/modules/HookNewsletter/I18n/fr_FR.php b/local/modules/modules/HookNewsletter/I18n/fr_FR.php deleted file mode 100644 index 67c6b531..00000000 --- a/local/modules/modules/HookNewsletter/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Lettre d\'information', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 9de40b6a..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,8 +0,0 @@ - 'E-mail Adresse', - 'Sign up to receive our latest news.' => 'Abonnieren Sie unseren Newsletter.', - 'Subscribe' => 'Abonnieren', - 'Your email address' => 'Ihre E-Mail-Adresse', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 68f5056a..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Email address', - 'Sign up to receive our latest news.' => 'Sign up to receive our latest news.', - 'Subscribe' => 'Subscribe', - 'Your email address' => 'Your email address', -); diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 17819d1f..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Adresse e-mail', - 'Sign up to receive our latest news.' => 'Enregistrez vous pour recevoir nos dernières nouvelles.', - 'Subscribe' => 'Inscription', - 'Your email address' => 'Votre adresse email', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 563e28bd..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Indirizzo email', - 'Subscribe' => 'Abbonati', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index dcc2918f..00000000 --- a/local/modules/modules/HookNewsletter/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Eposta adresi', - 'Sign up to receive our latest news.' => 'En yeni haberleri almak için kaydolun.', - 'Subscribe' => 'Abone Ol', - 'Your email address' => 'E-posta adresiniz', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/it_IT.php b/local/modules/modules/HookNewsletter/I18n/it_IT.php deleted file mode 100644 index 8e9757db..00000000 --- a/local/modules/modules/HookNewsletter/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Newsletter', -]; diff --git a/local/modules/modules/HookNewsletter/I18n/tr_TR.php b/local/modules/modules/HookNewsletter/I18n/tr_TR.php deleted file mode 100644 index 6d9159e5..00000000 --- a/local/modules/modules/HookNewsletter/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'E-Bülten', -]; diff --git a/local/modules/modules/HookNewsletter/LICENSE.txt b/local/modules/modules/HookNewsletter/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookNewsletter/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookNewsletter/composer.json b/local/modules/modules/HookNewsletter/composer.json deleted file mode 100644 index 230b69d6..00000000 --- a/local/modules/modules/HookNewsletter/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-newsletter-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookNewsletter" - } -} diff --git a/local/modules/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index f60e082e..00000000 --- a/local/modules/modules/HookNewsletter/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,13 +0,0 @@ -

    {intl l="Sign up to receive our latest news." d="hooknewsletter.fo.default"}

    -{form name="thelia.front.newsletter"} -
    -{form_hidden_fields} -{form_field field="email"} -
    - - -
    -{/form_field} - -
    -{/form} \ No newline at end of file diff --git a/local/modules/modules/HookProductsNew/Config/config.xml b/local/modules/modules/HookProductsNew/Config/config.xml deleted file mode 100644 index 42df6539..00000000 --- a/local/modules/modules/HookProductsNew/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookProductsNew/Config/module.xml b/local/modules/modules/HookProductsNew/Config/module.xml deleted file mode 100644 index 0926cf41..00000000 --- a/local/modules/modules/HookProductsNew/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookProductsNew\HookProductsNew - - Block New Products - - - Bloc Nouveaux Produits - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookProductsNew/HookProductsNew.php b/local/modules/modules/HookProductsNew/HookProductsNew.php deleted file mode 100644 index 16a92d08..00000000 --- a/local/modules/modules/HookProductsNew/HookProductsNew.php +++ /dev/null @@ -1,20 +0,0 @@ - '+ Alle anzeigen', - 'Latest' => 'Neuigkeiten', -]; diff --git a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookProductsNew/I18n/frontOffice/default/en_US.php deleted file mode 100644 index bd7cd7c7..00000000 --- a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ View All', - 'Latest' => 'Latest', -); diff --git a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 297a7334..00000000 --- a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Tout voir', - 'Latest' => 'Nouveautés', -]; diff --git a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index f8284b5d..00000000 --- a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Mostra tutto', - 'Latest' => 'Ultimi', -]; diff --git a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 035d01d9..00000000 --- a/local/modules/modules/HookProductsNew/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Hepsini gör', - 'Latest' => 'En son', -]; diff --git a/local/modules/modules/HookProductsNew/LICENSE.txt b/local/modules/modules/HookProductsNew/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookProductsNew/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookProductsNew/composer.json b/local/modules/modules/HookProductsNew/composer.json deleted file mode 100644 index 37573922..00000000 --- a/local/modules/modules/HookProductsNew/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-products-new-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookProductsNew" - } -} diff --git a/local/modules/modules/HookProductsNew/templates/frontOffice/default/home-body.html b/local/modules/modules/HookProductsNew/templates/frontOffice/default/home-body.html deleted file mode 100644 index 11f6004a..00000000 --- a/local/modules/modules/HookProductsNew/templates/frontOffice/default/home-body.html +++ /dev/null @@ -1,59 +0,0 @@ -{ifloop rel="product_new"} -
    -
    -

    {intl l="Latest" d="hookproductsnew.fo.default"} {intl l="+ View All" d="hookproductsnew.fo.default"}

    -
    -
    - -
    -
    -{/ifloop} diff --git a/local/modules/modules/HookProductsOffer/Config/config.xml b/local/modules/modules/HookProductsOffer/Config/config.xml deleted file mode 100644 index 00e4ebb5..00000000 --- a/local/modules/modules/HookProductsOffer/Config/config.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - diff --git a/local/modules/modules/HookProductsOffer/Config/module.xml b/local/modules/modules/HookProductsOffer/Config/module.xml deleted file mode 100644 index 4fe1d504..00000000 --- a/local/modules/modules/HookProductsOffer/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookProductsOffer\HookProductsOffer - - Block Promo Products - - - Bloc Produits en promo - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookProductsOffer/HookProductsOffer.php b/local/modules/modules/HookProductsOffer/HookProductsOffer.php deleted file mode 100644 index 2b04e7f8..00000000 --- a/local/modules/modules/HookProductsOffer/HookProductsOffer.php +++ /dev/null @@ -1,20 +0,0 @@ - '+ Alle sehen', - 'Offers' => 'Angebote', -]; diff --git a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 9b4a1c61..00000000 --- a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ View All', - 'Offers' => 'Offers', -); diff --git a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 3dbf4a11..00000000 --- a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Tout voir', - 'Offers' => 'Promotions', -]; diff --git a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index ba350c21..00000000 --- a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Mostra tutto', - 'Offers' => 'Offerte', -]; diff --git a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index bc9c3e6b..00000000 --- a/local/modules/modules/HookProductsOffer/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,6 +0,0 @@ - '+ Hepsini gör', - 'Offers' => 'Teklifler', -]; diff --git a/local/modules/modules/HookProductsOffer/LICENSE.txt b/local/modules/modules/HookProductsOffer/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookProductsOffer/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookProductsOffer/composer.json b/local/modules/modules/HookProductsOffer/composer.json deleted file mode 100644 index 8329abdb..00000000 --- a/local/modules/modules/HookProductsOffer/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-products-offer-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookProductsOffer" - } -} diff --git a/local/modules/modules/HookProductsOffer/templates/frontOffice/default/home-body.html b/local/modules/modules/HookProductsOffer/templates/frontOffice/default/home-body.html deleted file mode 100644 index 462e775a..00000000 --- a/local/modules/modules/HookProductsOffer/templates/frontOffice/default/home-body.html +++ /dev/null @@ -1,39 +0,0 @@ -{ifloop rel="current-sales"} -
    - {loop name="current-sales" type="sale" limit="2"} -
    - - -
    -
      - {loop name="products_in_sale" type="product" limit="4" sale=$ID} - {include file="includes/single-product.html" colClass="col-md-3 col-sm-4" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"} - {/loop} -
    -
    -
    - {/loop} -
    -{/ifloop} -{* Display "regular" promos, if any, only if we don't have active sales *} - -{elseloop rel="current-sales"} -{ifloop rel="product_promo"} -
    -
    -

    {intl l="Offers" d="hookproductsoffer.fo.default"} {intl l="+ View All" d="hookproductsoffer.fo.default"}

    -
    - -
    -
      - {loop name="product_promo" type="product" limit="4" promo="yes"} - {include file="includes/single-product.html" colClass="col-md-3 col-sm-4" product_id=$ID hasBtn=false hasDescription=false width="218" height="146"} - {/loop} -
    -
    -
    -{/ifloop} -{/elseloop} diff --git a/local/modules/modules/HookSearch/Config/config.xml b/local/modules/modules/HookSearch/Config/config.xml deleted file mode 100644 index b5d60c60..00000000 --- a/local/modules/modules/HookSearch/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/modules/modules/HookSearch/Config/module.xml b/local/modules/modules/HookSearch/Config/module.xml deleted file mode 100644 index 3ffe27ce..00000000 --- a/local/modules/modules/HookSearch/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookSearch\HookSearch - - Block Search - - - Bloc Recherche - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookSearch/HookSearch.php b/local/modules/modules/HookSearch/HookSearch.php deleted file mode 100644 index bbe6d752..00000000 --- a/local/modules/modules/HookSearch/HookSearch.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Mindestens 2 Zeichen.', - 'Search' => 'Suchen', - 'Search a product' => 'Ein Produkt suchen', - 'Search...' => 'Suchen ...', -]; diff --git a/local/modules/modules/HookSearch/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookSearch/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 5d94b36c..00000000 --- a/local/modules/modules/HookSearch/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Minimum 2 characters.', - 'Search' => 'Search', - 'Search a product' => 'Search a product', - 'Search...' => 'Search...', -); diff --git a/local/modules/modules/HookSearch/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookSearch/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index c115fb42..00000000 --- a/local/modules/modules/HookSearch/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - '2 caractères minimum.', - 'Search' => 'Recherche', - 'Search a product' => 'Rechercher un produit', - 'Search...' => 'Rechercher...', -]; diff --git a/local/modules/modules/HookSearch/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookSearch/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 65ad8706..00000000 --- a/local/modules/modules/HookSearch/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Minimo 2 caratteri.', - 'Search' => 'Ricerca', - 'Search a product' => 'Ricerca un prodotto', - 'Search...' => 'Ricerca...', -]; diff --git a/local/modules/modules/HookSearch/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookSearch/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index e9d75686..00000000 --- a/local/modules/modules/HookSearch/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'En az 2 karakter.', - 'Search' => 'Arama', - 'Search a product' => 'Ürün ara', - 'Search...' => 'Arama...', -]; diff --git a/local/modules/modules/HookSearch/LICENSE.txt b/local/modules/modules/HookSearch/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookSearch/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookSearch/composer.json b/local/modules/modules/HookSearch/composer.json deleted file mode 100644 index 9dfdcaf1..00000000 --- a/local/modules/modules/HookSearch/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-search-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookSearch" - } -} diff --git a/local/modules/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css b/local/modules/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index 74b18399..00000000 --- a/local/modules/modules/HookSearch/templates/frontOffice/default/assets/css/styles.css +++ /dev/null @@ -1,11 +0,0 @@ -.header-container .search-container label, -.header-container .search-container .btn-search>span { - position:absolute; - width:1px; - height:1px; - margin:-1px; - padding:0; - overflow:hidden; - clip:rect(0 0 0 0); - border:0 -} \ No newline at end of file diff --git a/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html b/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html deleted file mode 100644 index 31c6afd2..00000000 --- a/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-primary.html +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html b/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html deleted file mode 100644 index 40ba03a6..00000000 --- a/local/modules/modules/HookSearch/templates/frontOffice/default/main-navbar-secondary.html +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/HookSocial/Config/config.xml b/local/modules/modules/HookSocial/Config/config.xml deleted file mode 100644 index f151f07c..00000000 --- a/local/modules/modules/HookSocial/Config/config.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - -
    - - - - - - - - - - - - - diff --git a/local/modules/modules/HookSocial/Config/module.xml b/local/modules/modules/HookSocial/Config/module.xml deleted file mode 100644 index e2a69379..00000000 --- a/local/modules/modules/HookSocial/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - HookSocial\HookSocial - - Block Social - - - Bloc Social - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/HookSocial/Config/routing.xml b/local/modules/modules/HookSocial/Config/routing.xml deleted file mode 100644 index 769a2c4a..00000000 --- a/local/modules/modules/HookSocial/Config/routing.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HookSocial\Controller\Configuration::saveAction - - - diff --git a/local/modules/modules/HookSocial/Controller/Configuration.php b/local/modules/modules/HookSocial/Controller/Configuration.php deleted file mode 100644 index 9fef4bfa..00000000 --- a/local/modules/modules/HookSocial/Controller/Configuration.php +++ /dev/null @@ -1,61 +0,0 @@ - - */ -class Configuration extends BaseAdminController -{ - public function saveAction() - { - - if (null !== $response = $this->checkAuth(array(AdminResources::MODULE), array('hooksocial'), AccessManager::UPDATE)) { - return $response; - } - - $form = new \HookSocial\Form\Configuration($this->getRequest()); - $resp = array( - "error" => 0, - "message" => "" - ); - $response=null; - - try { - $vform = $this->validateForm($form); - $data = $vform->getData(); - - foreach ($data as $name => $value) { - if (! $form->isTemplateDefinedHiddenFieldName($name)) { - ConfigQuery::write("hooksocial_" . $name, $value, false, true); - } - - Tlog::getInstance()->debug(sprintf("%s => %s", $name, $value)); - } - } catch (\Exception $e) { - $resp["error"] = 1; - $resp["message"] = $e->getMessage(); - } - - return JsonResponse::create($resp); - } -} \ No newline at end of file diff --git a/local/modules/modules/HookSocial/Form/Configuration.php b/local/modules/modules/HookSocial/Form/Configuration.php deleted file mode 100644 index 82d7418b..00000000 --- a/local/modules/modules/HookSocial/Form/Configuration.php +++ /dev/null @@ -1,86 +0,0 @@ - - */ -class Configuration extends BaseForm { - - protected function buildForm() - { - $form = $this->formBuilder; - - $definitions = array( - array( - "id" => "twitter", - "label" => Translator::getInstance()->trans("Twitter username", array(), 'hooksocial') - ), - array( - "id" => "facebook", - "label" => Translator::getInstance()->trans("Facebook username", array(), 'hooksocial') - ), - array( - "id" => "google", - "label" => Translator::getInstance()->trans("Google + username", array(), 'hooksocial') - ), - array( - "id" => "instagram", - "label" => Translator::getInstance()->trans("Instagram username", array(), 'hooksocial') - ), - array( - "id" => "pinterest", - "label" => Translator::getInstance()->trans("Pinterest username", array(), 'hooksocial') - ), - array( - "id" => "youtube", - "label" => Translator::getInstance()->trans("Youtube URL", array(), 'hooksocial') - ), - array( - "id" => "rss", - "label" => Translator::getInstance()->trans("RSS URL", array(), 'hooksocial') - ) - ); - - foreach ($definitions as $field){ - $value = ConfigQuery::read("hooksocial_" . $field["id"], ""); - $form->add( - $field["id"], - "text", - array( - 'data' => $value, - 'label' => $field["label"], - 'label_attr' => array( - 'for' => $field["id"] - ), - ) - ); - } - } - - /** - * @return string the name of you form. This name must be unique - */ - public function getName() - { - return "hooksocial"; - } - - -} \ No newline at end of file diff --git a/local/modules/modules/HookSocial/Hook/FrontHook.php b/local/modules/modules/HookSocial/Hook/FrontHook.php deleted file mode 100644 index 770c2178..00000000 --- a/local/modules/modules/HookSocial/Hook/FrontHook.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -class FrontHook extends BaseHook { - - public function onMainFooterBody(HookRenderBlockEvent $event) - { - $content = trim($this->render("main-footer-body.html")); - if ("" != $content){ - $event->add(array( - "id" => "social-footer-body", - "class" => "social", - "title" => $this->trans("Follow us", array(), "hooksocial"), - "content" => $content - )); - } - } -} \ No newline at end of file diff --git a/local/modules/modules/HookSocial/HookSocial.php b/local/modules/modules/HookSocial/HookSocial.php deleted file mode 100644 index 030e814d..00000000 --- a/local/modules/modules/HookSocial/HookSocial.php +++ /dev/null @@ -1,20 +0,0 @@ - 'Ein Fehler ist aufgetreten', - 'Save' => 'Speichern', -]; diff --git a/local/modules/modules/HookSocial/I18n/backOffice/default/en_US.php b/local/modules/modules/HookSocial/I18n/backOffice/default/en_US.php deleted file mode 100644 index 4ce9a282..00000000 --- a/local/modules/modules/HookSocial/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,7 +0,0 @@ - 'An error occured', - 'Edit your social accounts.' => 'Edit your social accounts.', - 'Save' => 'Save', -); diff --git a/local/modules/modules/HookSocial/I18n/backOffice/default/fr_FR.php b/local/modules/modules/HookSocial/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index e08beb6c..00000000 --- a/local/modules/modules/HookSocial/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Une erreur est survenue', - 'Edit your social accounts.' => 'Modifier vos paramètres de réseaux sociaux.', - 'Save' => ' Enregistrer', -]; diff --git a/local/modules/modules/HookSocial/I18n/backOffice/default/it_IT.php b/local/modules/modules/HookSocial/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 3099d7ba..00000000 --- a/local/modules/modules/HookSocial/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,6 +0,0 @@ - 'Modifica i tuoi account social.', - 'Save' => 'Salvare', -]; diff --git a/local/modules/modules/HookSocial/I18n/backOffice/default/tr_TR.php b/local/modules/modules/HookSocial/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index f4d5e02c..00000000 --- a/local/modules/modules/HookSocial/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Bir hata meydana geldi', - 'Edit your social accounts.' => 'Sosyal hesaplarınızı düzenleyin.', - 'Save' => 'kaydet', -]; diff --git a/local/modules/modules/HookSocial/I18n/de_DE.php b/local/modules/modules/HookSocial/I18n/de_DE.php deleted file mode 100644 index e6c7fb51..00000000 --- a/local/modules/modules/HookSocial/I18n/de_DE.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook Benutzername', - 'Follow us' => 'Folgen Sie uns', - 'Google + username' => 'Google+ Benutzername', - 'Instagram username' => 'Instagram Benutzername', - 'Pinterest username' => 'Pinterest Benutzername', - 'RSS URL' => 'RSS-URL', - 'Twitter username' => 'Twitter Benutzername', - 'Youtube URL' => 'YouTube-URL', -]; diff --git a/local/modules/modules/HookSocial/I18n/en_US.php b/local/modules/modules/HookSocial/I18n/en_US.php deleted file mode 100644 index dfb8eff8..00000000 --- a/local/modules/modules/HookSocial/I18n/en_US.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook username', - 'Follow us' => 'Follow us', - 'Google + username' => 'Google + username', - 'Instagram username' => 'Instagram username', - 'Pinterest username' => 'Pinterest username', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Twitter username', - 'Youtube URL' => 'Youtube URL', -); diff --git a/local/modules/modules/HookSocial/I18n/fr_FR.php b/local/modules/modules/HookSocial/I18n/fr_FR.php deleted file mode 100644 index 6f08ba6f..00000000 --- a/local/modules/modules/HookSocial/I18n/fr_FR.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Nom d\'utilisateur Facebook', - 'Follow us' => 'Suivez-nous', - 'Google + username' => 'Nom d\'utilisateur Google +', - 'Instagram username' => 'Nom d\'utilisateur Instagram', - 'Pinterest username' => 'Nom d\'utilisateur Pinterest', - 'RSS URL' => 'URL du flux RSS', - 'Twitter username' => 'Nom d\'utilisateur Twitter', - 'Youtube URL' => 'URL Youtube', -]; diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/de_DE.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 938a9f4a..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS-Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'YouTube', -]; diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/en_US.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 534a4d03..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -); diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index 7b64f075..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google+', - 'Instagram' => 'Instagram', - 'RSS' => 'Flux RSS', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/it_IT.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 15298b70..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Feed', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookSocial/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/HookSocial/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index b951272b..00000000 --- a/local/modules/modules/HookSocial/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Facebook', - 'Google+' => 'Google +', - 'Instagram' => 'Instagram', - 'RSS' => 'RSS Beslemesi', - 'Twitter' => 'Twitter', - 'Youtube' => 'Youtube', -]; diff --git a/local/modules/modules/HookSocial/I18n/it_IT.php b/local/modules/modules/HookSocial/I18n/it_IT.php deleted file mode 100644 index e1fd072a..00000000 --- a/local/modules/modules/HookSocial/I18n/it_IT.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Nome utente Facebook', - 'Follow us' => 'Seguici', - 'Google + username' => 'Nome utente Google +', - 'Instagram username' => 'Nome utente Instagram', - 'Pinterest username' => 'Nome utente Pinterest', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Nome utente Twitter', - 'Youtube URL' => 'Youtube URL', -]; diff --git a/local/modules/modules/HookSocial/I18n/tr_TR.php b/local/modules/modules/HookSocial/I18n/tr_TR.php deleted file mode 100644 index c5ea54f4..00000000 --- a/local/modules/modules/HookSocial/I18n/tr_TR.php +++ /dev/null @@ -1,12 +0,0 @@ - 'Facebook kullanıcı adı', - 'Follow us' => 'Bizi takip edin', - 'Google + username' => 'Google + kullanıcı adı', - 'Instagram username' => 'Google + kullanıcı adı', - 'Pinterest username' => 'Pinterest kullanıcı adı', - 'RSS URL' => 'RSS URL', - 'Twitter username' => 'Twitter kullanıcı adı', - 'Youtube URL' => 'YouTube URL', -]; diff --git a/local/modules/modules/HookSocial/LICENSE.txt b/local/modules/modules/HookSocial/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/HookSocial/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/HookSocial/composer.json b/local/modules/modules/HookSocial/composer.json deleted file mode 100644 index 4a18288a..00000000 --- a/local/modules/modules/HookSocial/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/hook-social-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "HookSocial" - } -} diff --git a/local/modules/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js b/local/modules/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js deleted file mode 100644 index 5bf3dfcc..00000000 --- a/local/modules/modules/HookSocial/templates/backOffice/default/assets/js/module-configuration.js +++ /dev/null @@ -1,28 +0,0 @@ -$(document).ready(function() { - $("#hooksocial-form").on("submit", function(e, data){ - e.preventDefault(); - var form = $(this); - - $('body').append(''); - - $.ajax({ - url: form.attr('action'), - type: form.attr('method'), - data: form.serialize() - }).done(function(){ - $("#loading-event").remove(); - }) - .success(function(data) { - if (data.error != 0) { - $("#loading-event").remove(); - $('#hooksocial-failed-body').html(data.message); - $("#hooksocial-failed").modal("show"); - } - }) - .fail(function(jqXHR, textStatus, errorThrown){ - $("#loading-event").remove(); - $('#hooksocial-failed-body').html(jqXHR.responseJSON.message); - $("#hooksocial-failed").modal("show"); - }); - }); -}); \ No newline at end of file diff --git a/local/modules/modules/HookSocial/templates/backOffice/default/module_configuration.html b/local/modules/modules/HookSocial/templates/backOffice/default/module_configuration.html deleted file mode 100644 index 61a48c13..00000000 --- a/local/modules/modules/HookSocial/templates/backOffice/default/module_configuration.html +++ /dev/null @@ -1,94 +0,0 @@ - - - -
    -
    - -
    - {intl d='hooksocial.bo.default' l='Edit your social accounts.'} -
    - -
    -
    - - {form name="hooksocial.configuration.form"} - - - {form_hidden_fields} - - {form_field field='twitter'} -
    - - -
    - {/form_field} - - {form_field field='facebook'} -
    - - -
    - {/form_field} - - {form_field field='google'} -
    - - -
    - {/form_field} - - {form_field field='instagram'} -
    - - -
    - {/form_field} - - {form_field field='pinterest'} -
    - - -
    - {/form_field} - - {form_field field='youtube'} -
    - - -
    - {/form_field} - - {form_field field='rss'} -
    - - -
    - {/form_field} - - - - {/form} - -
    - -
    - -
    -
    - - - - diff --git a/local/modules/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css b/local/modules/modules/HookSocial/templates/frontOffice/default/assets/css/styles.css deleted file mode 100644 index e69de29b..00000000 diff --git a/local/modules/modules/HookSocial/templates/frontOffice/default/main-footer-body.html b/local/modules/modules/HookSocial/templates/frontOffice/default/main-footer-body.html deleted file mode 100644 index 095d7832..00000000 --- a/local/modules/modules/HookSocial/templates/frontOffice/default/main-footer-body.html +++ /dev/null @@ -1,86 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/TheliaMigrateCountry/Config/config.xml b/local/modules/modules/TheliaMigrateCountry/Config/config.xml deleted file mode 100644 index 9a63718e..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Config/config.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - -
    - - - - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/TheliaMigrateCountry/Config/module.xml b/local/modules/modules/TheliaMigrateCountry/Config/module.xml deleted file mode 100644 index eba7cb69..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Config/module.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - TheliaMigrateCountry\TheliaMigrateCountry - - Countries/states migration tool - - - Utilitaire de migration des pays/états - - - en_US - fr_FR - - 2.3.4 - - - Julien Chanséaume - julien@thelia.net - - - classic - 2.3.0 - alpha - diff --git a/local/modules/modules/TheliaMigrateCountry/Config/routing.xml b/local/modules/modules/TheliaMigrateCountry/Config/routing.xml deleted file mode 100644 index 111b7cb7..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Config/routing.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - TheliaMigrateCountry\Controller\MigrateController::migrateSystemAction - - - - TheliaMigrateCountry\Controller\MigrateController::doMigrateSystemAction - - - diff --git a/local/modules/modules/TheliaMigrateCountry/Controller/MigrateController.php b/local/modules/modules/TheliaMigrateCountry/Controller/MigrateController.php deleted file mode 100644 index 9b582845..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Controller/MigrateController.php +++ /dev/null @@ -1,175 +0,0 @@ - - */ -class MigrateController extends BaseAdminController -{ - protected $useFallbackTemplate = true; - - public function migrateSystemAction() - { - $response = $this->checkAuth(AdminResources::COUNTRY, array(), AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - // load country not migrated - $dataForm = []; - - $migratedCountries = json_decode(ConfigQuery::read('thelia_country_state_migration', '[]'), true); - - $countries = CountryQuery::create() - ->filterByHasStates(1) - ; - - /** @var Country $country */ - foreach ($countries as $country) { - $oldCountries = CountryQuery::create() - ->filterByHasStates(0) - ->filterByIsocode($country->getIsoCode()) - ->find() - ; - /** @var Country $oldCountry */ - foreach ($oldCountries as $oldCountry) { - if (!isset($migratedCountries[$oldCountry->getId()])) { - $dataForm[] = [ - 'migrate' => false, - 'country' => $oldCountry->getId(), - 'new_country' => $country->getId(), - 'new_state' => null - ]; - } - } - } - - // prepare form - $form = $this->createForm('thelia.admin.country.state.migration', 'form', ['migrations' => $dataForm]); - $this->getParserContext()->addForm($form); - - return $this->render( - 'countries-migrate', - [ - 'countriesMigrated' => $migratedCountries, - 'showForm' => count($dataForm) != 0 - ] - ); - } - - public function doMigrateSystemAction() - { - $response = $this->checkAuth(AdminResources::COUNTRY, array(), AccessManager::UPDATE); - if (null !== $response) { - return $response; - } - - $changeForm = $this->createForm('thelia.admin.country.state.migration', 'form'); - - try { - // Check the form against constraints violations - $form = $this->validateForm($changeForm, "POST"); - - // Get the form field values - $data = $form->getData(); - - foreach ($data['migrations'] as $migration) { - - if (!$migration['migrate']) { - continue; - } - - $changeEvent = new MigrateCountryEvent( - $migration['country'], - $migration['new_country'], - $migration['new_state'] - ); - - $this->dispatch(MigrateCountryEvents::MIGRATE_COUNTRY, $changeEvent); - - // memorize the migration - $migratedCountries = json_decode(ConfigQuery::read('thelia_country_state_migration', '[]'), true); - $migratedCountries[$changeEvent->getCountry()] = [ - 'country' => $changeEvent->getNewCountry(), - 'state' => $changeEvent->getNewState(), - 'counter' => $changeEvent->getCounter() - ]; - ConfigQuery::write('thelia_country_state_migration', json_encode($migratedCountries)); - - // message - $message = $this->getTranslator()->trans( - 'Country %id migrated to country (ID %country) and state (ID %state) (address: %address, tax rules: %tax, shipping zones: %zone)', - [ - '%id' => $changeEvent->getCountry(), - '%country' => $changeEvent->getNewCountry(), - '%state' => $changeEvent->getNewState(), - '%address' => $changeEvent->getCounter()[AddressTableMap::TABLE_NAME], - '%tax' => $changeEvent->getCounter()[TaxRuleCountryTableMap::TABLE_NAME], - '%zone' => $changeEvent->getCounter()[CountryAreaTableMap::TABLE_NAME] - ] - ); - - // add flash message - $this->getSession()->getFlashBag()->add('migrate', $message); - - // Log migration - $this->adminLogAppend( - AdminResources::COUNTRY, - AccessManager::UPDATE, - $message, - $changeEvent->getCountry() - ); - - } - - return $this->generateSuccessRedirect($changeForm); - } catch (FormValidationException $ex) { - // Form cannot be validated - $error_msg = $this->createStandardFormValidationErrorMessage($ex); - } - - if (false !== $error_msg) { - $this->setupFormErrorContext( - $this->getTranslator()->trans("Country migration"), - $error_msg, - $changeForm, - $ex - ); - - return $this->render( - 'countries-migrate', - [ - 'countriesMigrated' => $migratedCountries, - 'showForm' => true - ] - ); - } - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php b/local/modules/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php deleted file mode 100644 index 9271e117..00000000 --- a/local/modules/modules/TheliaMigrateCountry/EventListeners/MigrateCountryListener.php +++ /dev/null @@ -1,155 +0,0 @@ - - */ -class MigrateCountryListener implements EventSubscriberInterface -{ - - public function migrateCountry(MigrateCountryEvent $event) - { - $counter = []; - - // update address - $counter[AddressTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // tax rules - $counter[TaxRuleCountryTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // shipping zone - $counter[CountryAreaTableMap::TABLE_NAME] = $this->migrateAddress($event); - - // if it succeeds we toggle the visibility of old country and new - $this->setCountriesVisibility($event); - - $event->setCounter($counter); - - } - - protected function migrateAddress(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(AddressTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = AddressQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - protected function migrateTaxRules(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(TaxRuleCountryTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = TaxRuleCountryQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - protected function migrateShippingZones(MigrateCountryEvent $event) - { - $con = Propel::getWriteConnection(CountryAreaTableMap::DATABASE_NAME); - $con->beginTransaction(); - try { - $updatedRows = CountryAreaQuery::create() - ->filterByCountryId($event->getCountry()) - ->update( - [ - 'CountryId' => $event->getNewCountry(), - 'StateId' => $event->getNewState(), - ] - ); - - $con->commit(); - - return $updatedRows; - } catch (PropelException $e) { - $con->rollback(); - throw $e; - } - } - - private function setCountriesVisibility(MigrateCountryEvent $event) - { - $oldCountry = CountryQuery::create()->findPk($event->getCountry()); - - if (null !== $oldCountry) { - $oldCountry - ->setVisible(0) - ->save() - ; - } - - $newCountry = CountryQuery::create()->findPk($event->getNewCountry()); - if (null !== $newCountry) { - $newCountry - ->setVisible(1) - ->save() - ; - } - } - - /** - * @inheritdoc - */ - public static function getSubscribedEvents() - { - return [ - MigrateCountryEvents::MIGRATE_COUNTRY => 'migrateCountry' - ]; - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php b/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php deleted file mode 100644 index 53613b09..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvent.php +++ /dev/null @@ -1,117 +0,0 @@ - - */ -class MigrateCountryEvent extends ActionEvent -{ - /** @var int Old country Id */ - protected $country; - - /** @var int New country Id */ - protected $newCountry; - - /** @var int New state Id */ - protected $newState; - - /** @var array counter */ - protected $counter = []; - - /** - * MigrateCountryEvent constructor. - * @param $country - * @param int $newCountry - * @param int $newState - */ - public function __construct($country, $newCountry, $newState) - { - $this->country = $country; - $this->newCountry = $newCountry; - $this->newState = $newState; - } - - /** - * @return mixed - */ - public function getCountry() - { - return $this->country; - } - - /** - * @param mixed $country - */ - public function setCountry($country) - { - $this->country = $country; - return $this; - } - - /** - * @return int - */ - public function getNewCountry() - { - return $this->newCountry; - } - - /** - * @param int $newCountry - */ - public function setNewCountry($newCountry) - { - $this->newCountry = $newCountry; - return $this; - } - - /** - * @return int - */ - public function getNewState() - { - return $this->newState; - } - - /** - * @param int $newState - */ - public function setNewState($newState) - { - $this->newState = $newState; - return $this; - } - - /** - * @return array - */ - public function getCounter() - { - return $this->counter; - } - - /** - * @param array $counter - */ - public function setCounter($counter) - { - $this->counter = $counter; - return $this; - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php b/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php deleted file mode 100644 index 3a1cdcb0..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Events/MigrateCountryEvents.php +++ /dev/null @@ -1,24 +0,0 @@ - - */ -class MigrateCountryEvents -{ - const MIGRATE_COUNTRY = 'action.migrate-country.migrate'; -} diff --git a/local/modules/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php b/local/modules/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php deleted file mode 100644 index 9a352af9..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Form/CountryStateMigrationForm.php +++ /dev/null @@ -1,54 +0,0 @@ - - */ -class CountryStateMigrationForm extends BaseForm -{ - - /** - * @inheritdocs - */ - protected function buildForm() - { - $this->formBuilder - ->add( - 'migrations', - 'collection', - [ - "type" => "country_state_migration", - "allow_add" => true, - "required" => true, - "cascade_validation" => true, - "constraints" => array( - new Count(["min" => 1]), - ), - ] - ) - ; - } - - public function getName() - { - return "thelia_country_state_migration"; - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php b/local/modules/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php deleted file mode 100644 index acbf43fa..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Form/Type/CountryStateMigrationType.php +++ /dev/null @@ -1,114 +0,0 @@ - - */ -class CountryStateMigrationType extends AbstractTheliaType -{ - public function configureOptions(OptionsResolver $resolver) - { - $resolver->setDefaults( - [ - "cascade_validation" => true, - "constraints" => array( - new Callback([ - "methods" => array( - [$this, "checkStateId"], - ), - ]), - ), - ] - ); - } - - public function buildForm(FormBuilderInterface $builder, array $options) - { - $builder - ->add("migrate", "checkbox") - ->add( - "country", - "country_id" - ) - ->add( - "new_country", - "country_id" - ) - ->add( - "new_state", - "state_id", - [ - "constraints" => [], - ] - ) - ; - } - - public function checkStateId($value, ExecutionContextInterface $context) - { - - if ($value['migrate']) { - if (null !== $state = StateQuery::create()->findPk($value['new_state'])) { - if ($state->getCountryId() !== $value['new_country']) { - $context->addViolation( - Translator::getInstance()->trans( - "The state id '%id' does not belong to country id '%id_country'", - [ - '%id' => $value['new_state'], - '%id_country' => $value['new_country'] - ] - ) - ); - } - } else { - $context->addViolation( - Translator::getInstance()->trans( - "The state id '%id' doesn't exist", - ['%id' => $value['new_state']] - ) - ); - } - } - - } - - private function getRowData(ExecutionContextInterface $context) - { - $propertyPath = $context->getPropertyPath(); - $data = $this->getRowData($context); - - - } - - /** - * Returns the name of this type. - * - * @return string The name of this type - */ - public function getName() - { - return 'country_state_migration'; - } -} diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php b/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php deleted file mode 100644 index 35906899..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,31 +0,0 @@ - ' country ', - ' migrated to ' => ' migrated to ', - ' state ' => ' state ', - 'After the migration the old country will be hide and the new one shown' => 'After the migration the old country will be hide and the new one shown', - 'All States' => 'All States', - 'All countries have been migrated' => 'All countries have been migrated', - 'Configuration' => 'Configuration', - 'Countries' => 'Countries', - 'Countries migrated' => 'Countries migrated', - 'Countries to migrate' => 'Countries to migrate', - 'Country ' => 'Country ', - 'Country migration' => 'Country migration', - 'For USA and Canada the states already exists as countries, so you have to select the right state.' => 'For USA and Canada the states already exists as countries, so you have to select the right state.', - 'For other countries, you should decide to use state or not. ' => 'For other countries, you should decide to use state or not. ', - 'Home' => 'Home', - 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.' => 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.', - 'In version 2.3 of Thelia, the system of country has changed.' => 'In version 2.3 of Thelia, the system of country has changed.', - 'Migrate ?' => 'Migrate ?', - 'Migrate countries' => 'Migrate countries', - 'New country' => 'New country', - 'Now, countries has been splited in countries and states.' => 'Now, countries has been splited in countries and states.', - 'Old country' => 'Old country', - 'State' => 'State', - 'The migration proccess is tricky and couldn\'t be automated.' => 'The migration proccess is tricky and couldn\'t be automated.', - 'The migration will change the address, tax rules and shipping zones to match with the new system.' => 'The migration will change the address, tax rules and shipping zones to match with the new system.', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'The update proccess has created new countries (even if it exists) and associated states.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.', -); diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php b/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index 70b7092b..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,31 +0,0 @@ - ' le pays', - ' migrated to ' => 'migré vers', - ' state ' => ' état ', - 'After the migration the old country will be hide and the new one shown' => 'Après la migration l\'ancien pays sera caché et le nouveau sera activé.', - 'All States' => 'Tous les états', - 'All countries have been migrated' => 'Tous les pays ont été migré', - 'Configuration' => 'Configuration', - 'Countries' => 'Pays', - 'Countries migrated' => 'Pays migrés', - 'Countries to migrate' => 'Pays à migrer.', - 'Country ' => 'Le pays', - 'Country migration' => 'Migration pays', - 'For USA and Canada the states already exists as countries, so you have to select the right state.' => 'Pour les USA et le Canada les états étaient déjà présents mais en tant que pays. Vous devrez donc choisir l\'état correspondant.', - 'For other countries, you should decide to use state or not. ' => 'Pour les autres pays, vous devrez choisir d\'utiliser ou pas les états.', - 'Home' => 'Accueil', - 'If you want to use the new country with its states, you have to check the migrate checkbox and select a state.' => 'Si vous voulez utiliser les nouveaux pays avec les états, vous devrez cocher la boîte à cocher \'migrer\' et sélectionner un état.', - 'In version 2.3 of Thelia, the system of country has changed.' => 'En version 2.3 de Thelia, le sysème des pays a changé.', - 'Migrate ?' => 'Migrer ?', - 'Migrate countries' => 'Migrer les pays', - 'New country' => 'Nouveau pays', - 'Now, countries has been splited in countries and states.' => 'Les pays ont été séparé en pays et états.', - 'Old country' => 'Ancien pays', - 'State' => 'État/région', - 'The migration proccess is tricky and couldn\'t be automated.' => 'Le processus de migration est compliqué et ne peux pas être automatisé', - 'The migration will change the address, tax rules and shipping zones to match with the new system.' => 'La migration changera les adresses, les règles de taxe et les zones de livraisons pour fonctionner avec le nouveau système.', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'Le processus de mise à jour a créé de nouveaux pays (même si il existait) et associé des états.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'Nous avons ajouté un état par \'défaut\' avec un nom vide. Par la suite, le client pourra le changer.', -]; diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php b/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 8aaa7bfe..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,19 +0,0 @@ - 'paese', - ' migrated to ' => ' migrato a ', - ' state ' => ' stato ', - 'All States' => 'Tutti gli Stati', - 'Configuration' => 'Impostazione', - 'Countries' => 'Paesi', - 'Country ' => 'Paese', - 'Country migration' => 'Migrazione del paese', - 'Home' => 'Home', - 'Migrate countries' => 'Migrazione dei paesi', - 'New country' => 'Nuovo paese', - 'Now, countries has been splited in countries and states.' => 'Ora, i paesi sono stati divisi in paesi e stati.', - 'State' => 'Stato', - 'The update proccess has created new countries (even if it exists) and associated states.' => 'Il processo di aggiornamento ha creato nuovi paesi (anche esistenti) e stati associati.', - 'We added a \'default\' state with a blank name as a fallback. Customer will have the possibility to change it later.' => 'Abbiamo aggiunto uno stato di \'default\' con un nome vuoto come fallback. Il cliente avrà la possibilità di modificarlo in seguito.', -]; diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/en_US.php b/local/modules/modules/TheliaMigrateCountry/I18n/en_US.php deleted file mode 100644 index 582bf0dc..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Country %id migrated to country (ID %country) and state (ID %state) (address: %address, tax rules: %tax, shipping zones: %zone)', - 'Country migration' => 'Country migration', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'The state id \'%id\' does not belong to country id \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'The state id \'%id\' doesn\'t exist', -); diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/fr_FR.php b/local/modules/modules/TheliaMigrateCountry/I18n/fr_FR.php deleted file mode 100644 index e36af4c7..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Le pays %id migré vers le pays (ID %country) et état (ID %state) (adresses: %address, règles de taxe: %tax, zones de livraison: %zone)', - 'Country migration' => 'Migration pays', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'L\'état id \'%id\' n\'appartient pas au pays id \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'L\'état id \'%id\' n\'existe pas', -]; diff --git a/local/modules/modules/TheliaMigrateCountry/I18n/it_IT.php b/local/modules/modules/TheliaMigrateCountry/I18n/it_IT.php deleted file mode 100644 index ebcb746f..00000000 --- a/local/modules/modules/TheliaMigrateCountry/I18n/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Paese %id migrato a paese (ID %country) e stato (ID %state) (Indirizzo: %address, norme fiscali: %tax, zone di spedizione: %zone)', - 'Country migration' => 'Migrazione del paese', - 'The state id \'%id\' does not belong to country id \'%id_country\'' => 'L\'id dello stato \'%id\' non appartiene a id paese \'%id_country\'', - 'The state id \'%id\' doesn\'t exist' => 'L\'id dello stato \'%id\' non esiste', -]; diff --git a/local/modules/modules/TheliaMigrateCountry/LICENSE.txt b/local/modules/modules/TheliaMigrateCountry/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/TheliaMigrateCountry/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/TheliaMigrateCountry/Readme.md b/local/modules/modules/TheliaMigrateCountry/Readme.md deleted file mode 100644 index ae6aee51..00000000 --- a/local/modules/modules/TheliaMigrateCountry/Readme.md +++ /dev/null @@ -1,18 +0,0 @@ -# Thelia Migrate Country - -This module allow you to migrate the system of country from Thelia version <= 2.2.* to version >= 2.3.0-alpha1. - -## Installation - -### Manually - -* Copy the module into ```/local/modules/``` directory and be sure that the name of the module is TheliaMigrateCountry. -* Activate it in your thelia administration panel - -### Composer - -Add it in your main thelia composer.json file - -``` -composer require your-vendor/thelia-migrate-country-module:~1.0 -``` diff --git a/local/modules/modules/TheliaMigrateCountry/TheliaMigrateCountry.php b/local/modules/modules/TheliaMigrateCountry/TheliaMigrateCountry.php deleted file mode 100644 index b8772687..00000000 --- a/local/modules/modules/TheliaMigrateCountry/TheliaMigrateCountry.php +++ /dev/null @@ -1,28 +0,0 @@ - - {intl l='Migrate countries'} - - -{/loop} \ No newline at end of file diff --git a/local/modules/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html b/local/modules/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html deleted file mode 100644 index 79b068a9..00000000 --- a/local/modules/modules/TheliaMigrateCountry/templates/backOffice/default/countries-migrate.html +++ /dev/null @@ -1,299 +0,0 @@ -{extends file="admin-layout.tpl"} - -{block name="no-return-functions"} - {$admin_current_location = 'configuration'} -{/block} - -{block name="page-title"}{intl l='Country migration'}{/block} - -{block name="check-resource"}admin.configuration.country{/block} -{block name="check-access"}update{/block} - -{block name="main-content"} -
    - -
    - - - -
    -
    -
    - -
    - {intl l='Migrate countries'} -
    - -
    -
    - {intl l='In version 2.3 of Thelia, the system of country has changed.'} - {intl l='Now, countries has been split in countries and states.'}
    - {intl l="The migration process is tricky and couldn't be automated."}

    - {intl l="The update process has created new countries (even if it exists) and associated states."}
    - {intl l="The migration will change the address, tax rules and shipping zones to match with the new system."}
    - {intl l="After the migration the old country will be hide and the new one shown"}

    - {intl l="For USA and Canada the states already exists as countries, so you have to select the right state."}
    - {intl l="For other countries, you should decide to use state or not. "} - {intl l="If you want to use the new country with its states, you have to check the migrate checkbox and select a state."} - {intl l="We added a 'default' state with a blank name as a fallback. Customer will have the possibility to change it later."} -
    -
    - - {if $showForm} -
    -
    - - {form name="thelia.admin.country.state.migration"} - - {include - file = "includes/inner-form-toolbar.html" - hide_submit_buttons = false - - page_url = {url path="/admin/configuration/countries/migrate"} - close_url = {url path="/admin/configuration/countries"} - } - - {form_hidden_fields exclude="locale"} - - {render_form_field field='success_url' value={url path="/admin/configuration/countries/migrate"}} - - {if $form_error}
    {$form_error_message}
    {/if} - - {if {hasflash type="migrate"}} -
    - {flash type="migrate"} -
    {$MESSAGE}
    - {/flash} -
    - {/if} - -
    - - - - - - - - - - - - {form_collection form=$form collection="migrations"} - {$newCountryId=0} - {$countryId=0} - - - - - - - {/form_collection} - -
    - {intl l='Countries to migrate'} -
    {intl l="Migrate ?"}{intl l="Old country"}{intl l="New country"}{intl l="State"}
    - {form_collection_field form=$form row=$row field="migrate"} - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="country"} - {$countryId={$value}} - - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="new_country"} - {$newCountryId={$value}} - - - {/form_collection_field} - - {form_collection_field form=$form row=$row field="new_state"} - {$ref[]={$label_attr.for}} - - - {/form_collection_field} -
    -
    - - - {/form} - -
    -
    - {else} -
    - {intl l="All countries have been migrated"} -
    - {/if} - -
    -
    - - {if count($countriesMigrated) > 0 } -
    -
    -
    - {intl l='Countries migrated'} -
    -
    - - {foreach $countriesMigrated as $country => $new} -
    -
    - {intl l='Country '} - {intl l=' migrated to '} - {intl l=' country '} - - {intl l=' state '} - -
    -
    - {/foreach} -
    - {/if} - -
    - -
    -
    -{/block} - -{block name="javascript-initialization"} - {javascripts file='assets/js/bootstrap-select/bootstrap-select.js'} - - {/javascripts} - - {javascripts file='assets/js/libs/underscore-min.js'} - - {/javascripts} - - - - -{/block} - -{block name="javascript-last-call"} - {hook name="wysiwyg.js" location="wysiwyg-country-edit-js" } -{/block} \ No newline at end of file diff --git a/local/modules/modules/TheliaSmarty/CREDITS.md b/local/modules/modules/TheliaSmarty/CREDITS.md deleted file mode 100644 index 3e89e239..00000000 --- a/local/modules/modules/TheliaSmarty/CREDITS.md +++ /dev/null @@ -1,40 +0,0 @@ -# Credits - -## Yii framework - -TheliaSmarty module uses a function that comes from [Yii framework](http://www.yiiframework.com/) - -License : - -The Yii framework is free software. It is released under the terms of -the following BSD License. - -Copyright © 2008 by Yii Software LLC (http://www.yiisoft.com) -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. - * Neither the name of Yii Software LLC nor the names of its - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/local/modules/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php b/local/modules/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php deleted file mode 100644 index 76514fff..00000000 --- a/local/modules/modules/TheliaSmarty/Compiler/RegisterParserPluginPass.php +++ /dev/null @@ -1,48 +0,0 @@ - - */ -class RegisterParserPluginPass implements CompilerPassInterface -{ - /** - * You can modify the container here before it is dumped to PHP code. - * - * @param ContainerBuilder $container - * - * @api - */ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition("thelia.parser")) { - return; - } - - $smarty = $container->getDefinition("thelia.parser"); - - foreach ($container->findTaggedServiceIds("thelia.parser.register_plugin") as $id => $plugin) { - $smarty->addMethodCall("addPlugins", array(new Reference($id))); - } - - $smarty->addMethodCall("registerPlugins"); - } -} diff --git a/local/modules/modules/TheliaSmarty/Config/config.xml b/local/modules/modules/TheliaSmarty/Config/config.xml deleted file mode 100644 index 11f008fb..00000000 --- a/local/modules/modules/TheliaSmarty/Config/config.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - %kernel.environment% - %kernel.debug% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %thelia.parser.loops% - - - - - - - - - - - - - - - - - - - - - - - - - - - - %thelia.parser.forms% - - - - - - - - - - %kernel.debug% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %kernel.debug% - - - - - - - - %kernel.debug% - - - - - diff --git a/local/modules/modules/TheliaSmarty/Config/module.xml b/local/modules/modules/TheliaSmarty/Config/module.xml deleted file mode 100644 index b6708542..00000000 --- a/local/modules/modules/TheliaSmarty/Config/module.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - TheliaSmarty\TheliaSmarty - - Smarty template engine integration - - - Intégration du moteur de template Smarty - - - en_US - fr_FR - - 2.3.4 - - - Manuel Raynaud - manu@raynaud.io - - - classic - 2.2.0 - alpha - 1 - 1 - diff --git a/local/modules/modules/TheliaSmarty/I18n/en_US.php b/local/modules/modules/TheliaSmarty/I18n/en_US.php deleted file mode 100644 index 173d397f..00000000 --- a/local/modules/modules/TheliaSmarty/I18n/en_US.php +++ /dev/null @@ -1,21 +0,0 @@ - '\'%type\' loop class should extends Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => 'A loop named \'%name\' already exists in the current scope.', - 'Loop type \'%type\' is not defined.' => 'Loop type \'%type\' is not defined.', - 'Missing \'name\' parameter in loop arguments' => 'Missing \'name\' parameter in loop arguments', - 'Missing \'rel\' parameter in forHook arguments' => 'Missing \'rel\' parameter in forHook arguments', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'Missing \'rel\' parameter in ifhook/elsehook arguments', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'Missing \'rel\' parameter in ifloop/elseloop arguments', - 'Missing \'rel\' parameter in page loop' => 'Missing \'rel\' parameter in page loop', - 'Missing \'type\' parameter in loop arguments' => 'Missing \'type\' parameter in loop arguments', - 'Missing \'type\' parameter in {count} loop arguments' => 'Missing \'type\' parameter in {count} loop arguments', - 'Missing \'type\' parameter in {hasflash} function arguments' => 'Missing \'type\' parameter in {hasflash} function arguments', - 'No pagination currently defined for loop name \'%name\'' => 'No pagination currently defined for loop name \'%name\'', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Please specify either \'path\' or \'file\' parameter in {url} function.', - 'Related hook name \'%name\' is not defined.' => 'Related hook name \'%name\' is not defined.', - 'Related loop name \'%name\'\' is not defined.' => 'Related loop name \'%name\'\' is not defined.', - 'Template file %file cannot be found.' => 'Template file %file cannot be found.', - 'The loop name \'%name\' is already defined in %className class' => 'The loop name \'%name\' is already defined in %className class', -); diff --git a/local/modules/modules/TheliaSmarty/I18n/fr_FR.php b/local/modules/modules/TheliaSmarty/I18n/fr_FR.php deleted file mode 100644 index 67b516db..00000000 --- a/local/modules/modules/TheliaSmarty/I18n/fr_FR.php +++ /dev/null @@ -1,21 +0,0 @@ - 'La loop "%type" doit étendre la class Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => 'une loop avec comme nom \'%name\' existe déjà dans le scope courant', - 'Loop type \'%type\' is not defined.' => 'La loop de type "%type" n\'est pas défini', - 'Missing \'name\' parameter in loop arguments' => 'Le paramètre \'name\' est manquant dans la liste des arguments', - 'Missing \'rel\' parameter in forHook arguments' => 'Le paramètre \'rel\' est manquant dans les arguments de forHook', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'Le paramètre \'rel\' est manquant des arguments ifhook/elsehook', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'Paramètre \'rel\' manquant dans la liste des arguments d\'une loop ifloop/elseloop', - 'Missing \'rel\' parameter in page loop' => 'Paramètre \'rel\' manquant dans la loop page', - 'Missing \'type\' parameter in loop arguments' => 'Le paramètre \'type\' est manquant dans la liste des arguments', - 'Missing \'type\' parameter in {count} loop arguments' => 'Le paramètre \'type\' dans la loop {count} est manquant', - 'Missing \'type\' parameter in {hasflash} function arguments' => 'Le paramètre \'type\' est manquant dans', - 'No pagination currently defined for loop name \'%name\'' => 'Il n\'y a pas de pagination définie pour la loop \'%name\'', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Merci de spécifier le \'path\' ou le \'file\'.parameter dans la fonction {url}', - 'Related hook name \'%name\' is not defined.' => 'le hook ayat pour nom "%name" n\'est pas défini', - 'Related loop name \'%name\'\' is not defined.' => 'La loop ayant pour nom "%name" n\'est pas défini', - 'Template file %file cannot be found.' => 'Le fichier %s ne semble pas présent', - 'The loop name \'%name\' is already defined in %className class' => 'La loop "%name" est déjà définie dans la class %className', -]; diff --git a/local/modules/modules/TheliaSmarty/I18n/tr_TR.php b/local/modules/modules/TheliaSmarty/I18n/tr_TR.php deleted file mode 100644 index 05f834a0..00000000 --- a/local/modules/modules/TheliaSmarty/I18n/tr_TR.php +++ /dev/null @@ -1,21 +0,0 @@ - '\'%type\' döngü sınıfını genişleten Thelia\Core\Template\Element\BaseLoop', - 'A loop named \'%name\' already exists in the current scope.' => '\'%name\' adlı bir döngü geçerli etki alanında bulunmaktadır.', - 'Loop type \'%type\' is not defined.' => 'Döngü türü \'%type\' tanımlı değil.', - 'Missing \'name\' parameter in loop arguments' => 'Döngü değişkenlerde \'ad\' parametresi eksik', - 'Missing \'rel\' parameter in forHook arguments' => 'ForHook değişkenlerde \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in ifhook/elsehook arguments' => 'İfhook/elsehook bağımsız değişkenleri \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in ifloop/elseloop arguments' => 'İfloop/elseloop bağımsız değişkenleri \'rel\' parametresi eksik', - 'Missing \'rel\' parameter in page loop' => 'Sayfa döngü içinde \'rel\' parametresi eksik', - 'Missing \'type\' parameter in loop arguments' => '\'Tür\' parametresinde döngü bağımsız değişkenleri eksik', - 'Missing \'type\' parameter in {count} loop arguments' => '{count} döngü değişkenlerde \'type\' parametresi eksik', - 'Missing \'type\' parameter in {hasflash} function arguments' => '\'Tür\' parametresinde {hasflash} fonksiyon bağımsız değişkenleri eksik', - 'No pagination currently defined for loop name \'%name\'' => 'Şu anda döngü adı \'%name\' tanımlı hiçbir pagination', - 'Please specify either \'path\' or \'file\' parameter in {url} function.' => 'Lütfen \'yol\' ya da \'dosya\' parametre {url} işlevinde belirtin.', - 'Related hook name \'%name\' is not defined.' => 'İlgili kanca adı \'%name\' tanımlı değil.', - 'Related loop name \'%name\'\' is not defined.' => 'İlgili kanca adı \'%name\' tanımlı değil.', - 'Template file %file cannot be found.' => 'Şablon dosyası %file bulunamadı.', - 'The loop name \'%name\' is already defined in %className class' => 'Döngü adı \'%name\' zaten %className sınıfında tanımlanmış', -]; diff --git a/local/modules/modules/TheliaSmarty/LICENSE.txt b/local/modules/modules/TheliaSmarty/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/TheliaSmarty/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/TheliaSmarty/Readme.md b/local/modules/modules/TheliaSmarty/Readme.md deleted file mode 100644 index 96b8b328..00000000 --- a/local/modules/modules/TheliaSmarty/Readme.md +++ /dev/null @@ -1,2 +0,0 @@ -## Smarty for Thelia - diff --git a/local/modules/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php b/local/modules/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php deleted file mode 100644 index 92c54a5c..00000000 --- a/local/modules/modules/TheliaSmarty/Template/AbstractSmartyPlugin.php +++ /dev/null @@ -1,97 +0,0 @@ -getParam($params, $name, $default); - - if (is_string($value)) { - $value = strtolower(trim($value)); - } - return $value; - } - - /** - * Get a function or block parameter value - * - * @param array $params the parameters array - * @param mixed $name as single parameter name, or an array of names. In this case, the first defined parameter is returned. Use this for aliases (context, ctx, c) - * @param mixed $default the defaut value if parameter is missing (default to null) - * @return mixed the parameter value, or the default value if it is not found. - */ - public function getParam($params, $name, $default = null) - { - if (is_array($name)) { - foreach ($name as $test) { - if (isset($params[$test])) { - return $params[$test]; - } - } - } elseif (isset($params[$name])) { - return $params[$name]; - } - - return $default; - } - - /** - * @return SmartyPluginDescriptor[] an array of SmartyPluginDescriptor - */ - abstract public function getPluginDescriptors(); -} diff --git a/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php b/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php deleted file mode 100644 index 64ec3db6..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsManager.php +++ /dev/null @@ -1,268 +0,0 @@ -web_root = $web_root; - $this->path_relative_to_web_root = $path_relative_to_web_root; - - $this->assetsManager = $assetsManager; - $this->assetsResolver = $assetsResolver; - } - - - /** - * Prepare current template assets - * - * @param string $assets_directory the assets directory in the template - * @param \Smarty_Internal_Template $smarty the smarty parser - */ - public function prepareAssets($assets_directory, \Smarty_Internal_Template $smarty) - { - // Be sure to use the proper path separator - if (DS != '/') { - $assets_directory = str_replace('/', DS, $assets_directory); - } - - // Set the current template assets directory - self::$assetsDirectory = $assets_directory; - - /** @var SmartyParser $smartyParser */ - $smartyParser = $smarty->smarty; - - $this->prepareTemplateAssets($smartyParser->getTemplateDefinition(), $assets_directory, $smartyParser); - } - - /** - * Prepare template assets - * - * @param TemplateDefinition $templateDefinition the template to process - * @param string $assets_directory the assets directory in the template - * @param \TheliaSmarty\Template\SmartyParser $smartyParser the current parser. - */ - protected function prepareTemplateAssets( - TemplateDefinition $templateDefinition, - $assets_directory, - SmartyParser $smartyParser - ) { - // Get the registered template directories for the current template path - $templateDirectories = $smartyParser->getTemplateDirectories($templateDefinition->getType()); - - if (isset($templateDirectories[$templateDefinition->getName()])) { - /* create assets foreach registered directory : main @ modules */ - foreach ($templateDirectories[$templateDefinition->getName()] as $key => $directory) { - // This is the assets directory in the template's tree - $tpl_path = $directory . DS . $assets_directory; - - $asset_dir_absolute_path = realpath($tpl_path); - - if (false !== $asset_dir_absolute_path) { - // If we're processing template assets (not module assets), - // we will use the $assets_directory as the assets parent dir. - if (SmartyParser::TEMPLATE_ASSETS_KEY == $key && ! null !== $assets_directory) { - $assetsWebDir = SmartyParser::TEMPLATE_ASSETS_KEY . DS . $assets_directory; - } else { - $assetsWebDir = $key; - } - - Tlog::getInstance()->addDebug( - "Preparing assets: source assets directory $asset_dir_absolute_path, " - . "web assets dir base: " . $this->web_root . $this->path_relative_to_web_root . ", " - . "template: ".$templateDefinition->getPath().", " - . "web asset key: $assetsWebDir (key=$key)" - ); - - $this->assetsManager->prepareAssets( - $asset_dir_absolute_path, - $this->web_root . $this->path_relative_to_web_root, - $templateDefinition->getPath(), - $key . DS . $assets_directory - ); - } - } - } - } - - /** - * Retrieve asset URL - * - * @param string $assetType js|css|image - * @param array $params Parameters - * - file File path in the default template - * - source module asset - * - filters filter to apply - * - debug - * - template if you want to load asset from another template - * @param \Smarty_Internal_Template $template Smarty Template - * - * @param bool $allowFilters if false, the 'filters' parameter is ignored - * @return string - */ - public function computeAssetUrl($assetType, $params, \Smarty_Internal_Template $template, $allowFilters = true) - { - $assetUrl = ""; - - $file = $params['file']; - - // The 'file' parameter is mandatory - if (empty($file)) { - throw new \InvalidArgumentException( - "The 'file' parameter is missing in an asset directive (type is '$assetType')" - ); - } - - $assetOrigin = isset($params['source']) ? $params['source'] : SmartyParser::TEMPLATE_ASSETS_KEY; - $filters = $allowFilters && isset($params['filters']) ? $params['filters'] : ''; - $debug = isset($params['debug']) ? trim(strtolower($params['debug'])) == 'true' : false; - $templateName = isset($params['template']) ? $params['template'] : false; - $failsafe = isset($params['failsafe']) ? $params['failsafe'] : false; - - Tlog::getInstance()->debug("Searching asset $file in source $assetOrigin, with template $templateName"); - - /** @var \TheliaSmarty\Template\SmartyParser $smartyParser */ - $smartyParser = $template->smarty; - - if (false !== $templateName) { - // We have to be sure that this external template assets have been properly prepared. - // We will assume the following: - // 1) this template have the same type as the current template, - // 2) this template assets have the same structure as the current template - // (which is in self::$assetsDirectory) - $currentTemplate = $smartyParser->getTemplateDefinition(); - - $templateDefinition = new TemplateDefinition( - $templateName, - $currentTemplate->getType() - ); - - /* Add this templates directory to the current list */ - $smartyParser->addTemplateDirectory( - $templateDefinition->getType(), - $templateDefinition->getName(), - THELIA_TEMPLATE_DIR . $templateDefinition->getPath(), - SmartyParser::TEMPLATE_ASSETS_KEY - ); - - $this->prepareTemplateAssets($templateDefinition, self::$assetsDirectory, $smartyParser); - } - - $assetSource = $this->assetsResolver->resolveAssetSourcePath($assetOrigin, $templateName, $file, $smartyParser); - - if (null !== $assetSource) { - $assetUrl = $this->assetsResolver->resolveAssetURL( - $assetOrigin, - $file, - $assetType, - $smartyParser, - $filters, - $debug, - self::$assetsDirectory, - $templateName - ); - } else { - // Log the problem - if ($failsafe) { - // The asset URL will be '' - Tlog::getInstance()->addWarning("Failed to find asset source file " . $params['file']); - } else { - throw new TheliaProcessException("Failed to find asset source file " . $params['file']); - } - } - - return $assetUrl; - } - - public function processSmartyPluginCall( - $assetType, - $params, - $content, - \Smarty_Internal_Template $template, - &$repeat - ) { - // Opening tag (first call only) - if ($repeat) { - $isfailsafe = false; - - $url = ''; - try { - // Check if we're in failsafe mode - if (isset($params['failsafe'])) { - $isfailsafe = $params['failsafe']; - } - - $url = $this->computeAssetUrl($assetType, $params, $template); - - if (empty($url)) { - $message = sprintf("Failed to get real path of asset %s without exception", $params['file']); - - Tlog::getInstance()->addWarning($message); - - // In debug mode, throw exception - if ($this->assetsManager->isDebugMode() && ! $isfailsafe) { - throw new TheliaProcessException($message); - } - } - } catch (\Exception $ex) { - Tlog::getInstance()->addWarning( - sprintf( - "Failed to get real path of asset %s with exception: %s", - $params['file'], - $ex->getMessage() - ) - ); - - // If we're in development mode, just retrow the exception, so that it will be displayed - if ($this->assetsManager->isDebugMode() && ! $isfailsafe) { - throw $ex; - } - } - $template->assign('asset_url', $url); - } elseif (isset($content)) { - return $content; - } - - return null; - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php b/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php deleted file mode 100644 index 34c248c5..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Assets/SmartyAssetsResolver.php +++ /dev/null @@ -1,223 +0,0 @@ -path_relative_to_web_root = ConfigQuery::read('asset_dir_from_web_root', 'assets'); - - $this->assetsManager = $assetsManager; - } - - /** - * Generate an asset URL - * - * @param string $source a module code, or SmartyParser::TEMPLATE_ASSETS_KEY - * @param string $file the file path, relative to a template base directory (e.g. assets/css/style.css) - * @param string $type the asset type, either 'css' or ' - * @param ParserInterface $parserInterface the current template parser - * @param array $filters the filters to pass to the asset manager - * @param bool $debug the debug mode - * @param string $declaredAssetsDirectory if not null, this is the assets directory declared in the {declare_assets} function of a template. - * @param mixed $sourceTemplateName A template name, of false. If provided, the assets will be searched in this template directory instead of the current one. - * @return mixed - */ - public function resolveAssetURL($source, $file, $type, ParserInterface $parserInterface, $filters = [], $debug = false, $declaredAssetsDirectory = null, $sourceTemplateName = false) - { - $url = ""; - - // Normalize path separator - $file = $this->fixPathSeparator($file); - - $fileRoot = $this->resolveAssetSourcePath($source, $sourceTemplateName, $file, $parserInterface); - - if (null !== $fileRoot) { - $templateDefinition = $parserInterface->getTemplateDefinition($sourceTemplateName); - - $url = $this->assetsManager->processAsset( - $fileRoot . DS . $file, - $fileRoot, - THELIA_WEB_DIR . $this->path_relative_to_web_root, - $templateDefinition->getPath(), - $source, // $this->getBaseWebAssetDirectory($source, $declaredAssetsDirectory), - URL::getInstance()->absoluteUrl($this->path_relative_to_web_root, null, URL::PATH_TO_FILE /* path only */), - $type, - $filters, - $debug - ); - } else { - Tlog::getInstance()->addError("Asset $file (type $type) was not found."); - } - - return $url; - } - - - /** - * Return an asset source file path. - * - * A system of fallback enables file overriding. It will look for the template : - * - in the current template in directory /modules/{module code}/ - * - in the module in the current template if it exists - * - in the module in the default template - * - * @param string $source a module code, or or SmartyParser::TEMPLATE_ASSETS_KEY - * @param string $templateName a template name, or false to use the current template - * @param string $fileName the filename - * @param ParserInterface $parserInterface the current template parser - * - * @return mixed the path to directory containing the file, or null if the file doesn't exists. - */ - public function resolveAssetSourcePath($source, $templateName, $fileName, ParserInterface $parserInterface) - { - $filePath = null; - - $templateDefinition = $parserInterface->getTemplateDefinition(false); - - // Get all possible directories to search - $paths = $this->getPossibleAssetSources( - $parserInterface->getTemplateDirectories($templateDefinition->getType()), - $templateName ?: $templateDefinition->getName(), - $source - ); - - // Normalize path separator if required (e.g., / becomes \ on windows) - $fileName = $this->fixPathSeparator($fileName); - - /* Absolute paths are not allowed. This may be a mistake, such as '/assets/...' instead of 'assets/...'. Forgive it. */ - $fileName = ltrim($fileName, DS); - - /* Navigating in the server's directory tree is not allowed :) */ - if (preg_match('!\.\.\\'.DS.'!', $fileName)) { - // This time, we will not forgive. - throw new \InvalidArgumentException("Relative paths are not allowed in assets names."); - } - - // Find the first occurrence of the file in the directories lists - foreach ($paths as $path) { - if ($this->filesExist($path, $fileName)) { - // Got it ! - $filePath = $path; - break; - } - } - - return $filePath; - } - - - /** - * Be sure that the pat separator of a pathname is always the platform path separator. - * - * @param string $path the iput path - * @return string the fixed path - */ - protected function fixPathSeparator($path) - { - if (DS != '/') { - $path = str_replace('/', DS, $path); - } - - return $path; - } - - /** - * Check if a file(s) exists in a directory - * - * @param string $dir the directory path - * @param string $file the file path. It can contain wildcard. eg: /path/*.css - * @return bool true if file(s) - */ - protected function filesExist($dir, $file) - { - if (!file_exists($dir)) { - return false; - } - - $full_path = rtrim($dir, DS) . DS . ltrim($file, DS); - - try { - $files = glob($full_path); - - $files_found = ! empty($files); - } catch (\Exception $ex) { - Tlog::getInstance()->addError($ex->getMessage()); - - $files_found = false; - } - - return $files_found; - } - - /** - * Get all possible directories from which the asset can be found. - * It returns an array of directories ordered by priority. - * - * @param array $directories all directories source available for the template type - * @param string $template the name of the template - * @param string $source the module code or SmartyParser::TEMPLATE_ASSETS_KEY - * @return array possible directories - */ - protected function getPossibleAssetSources($directories, $template, $source) - { - $paths = []; - - if (SmartyParser::TEMPLATE_ASSETS_KEY !== $source) { - // We're in a module. - - // First look into the current template in the right scope : frontOffice, backOffice, ... - // template should be overridden in : {template_path}/modules/{module_code}/{template_name} - if (isset($directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY])) { - $paths[] = - $directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY] - . DS - . self::MODULE_OVERRIDE_DIRECTORY_NAME . DS - . $source; - } - - // then in the implementation for the current template used in the module directory - if (isset($directories[$template][$source])) { - $paths[] = $directories[$template][$source]; - } - - // then in the default theme in the module itself - if (isset($directories[self::DEFAULT_TEMPLATE_NAME][$source])) { - $paths[] = $directories[self::DEFAULT_TEMPLATE_NAME][$source]; - } - } else { - $paths[] = $directories[$template][SmartyParser::TEMPLATE_ASSETS_KEY]; - } - - return $paths; - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php b/local/modules/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php deleted file mode 100644 index 41119ecf..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Exception/SmartyPluginException.php +++ /dev/null @@ -1,22 +0,0 @@ - - */ -class SmartyPluginException extends \SmartyException -{ -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php b/local/modules/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php deleted file mode 100644 index ed7b5125..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/AdminUtilities.php +++ /dev/null @@ -1,172 +0,0 @@ - - */ -class AdminUtilities extends AbstractSmartyPlugin -{ - private $securityContext; - private $templateHelper; - - public function __construct(SecurityContext $securityContext, TemplateHelperInterface $templateHelper) - { - $this->securityContext = $securityContext; - $this->templateHelper = $templateHelper; - } - - protected function fetchSnippet($smarty, $templateName, $variablesArray) - { - $data = ''; - - $snippet_path = sprintf( - '%s/%s/%s.html', - THELIA_TEMPLATE_DIR, - $this->templateHelper->getActiveAdminTemplate()->getPath(), - $templateName - ); - - if (false !== $snippet_content = file_get_contents($snippet_path)) { - $smarty->assign($variablesArray); - - $data = $smarty->fetch(sprintf('string:%s', $snippet_content)); - } - - return $data; - } - - public function optionOffsetGenerator($params, &$smarty) - { - $label = $this->getParam($params, 'label', null); - - if (null !== $level = $this->getParam($params, [ 'l', 'level'], null)) { - $label = str_repeat(' ', 4 * $level) . $label; - } - - return $label; - } - - public function generatePositionChangeBlock($params, &$smarty) - { - // The required permissions - $resource = $this->getParam($params, 'resource'); - $module = $this->getParam($params, 'module'); - $access = $this->getParam($params, 'access'); - - // The base position change path - $path = $this->getParam($params, 'path'); - - // The URL parameter the object ID is assigned - $url_parameter = $this->getParam($params, 'url_parameter'); - - // The current object position - $position = $this->getParam($params, 'position'); - - // The object ID - $id = $this->getParam($params, 'id'); - - // The in place dition class - $in_place_edit_class = $this->getParam($params, 'in_place_edit_class'); - - /* - - {$POSITION} - - */ - - if ($this->securityContext->isGranted( - array("ADMIN"), - $resource === null ? array() : array($resource), - $module === null ? array() : array($module), - array($access) - ) - ) { - return $this->fetchSnippet($smarty, 'includes/admin-utilities-position-block', array( - 'admin_utilities_go_up_url' => URL::getInstance()->absoluteUrl($path, array('mode' => 'up', $url_parameter => $id)), - 'admin_utilities_in_place_edit_class' => $in_place_edit_class, - 'admin_utilities_object_id' => $id, - 'admin_utilities_current_position' => $position, - 'admin_utilities_go_down_url' => URL::getInstance()->absoluteUrl($path, array('mode' => 'down', $url_parameter => $id)) - )); - } else { - return $position; - } - } - - /** - * Generates the link of a sortable column header - * - * @param array $params - * @param unknown $smarty - * @return string no text is returned. - */ - public function generateSortableColumnHeader($params, &$smarty) - { - // The current order of the table - $current_order = $this->getParam($params, 'current_order'); - - // The column ascending order - $order = $this->getParam($params, 'order'); - - // The column descending order label - $reverse_order = $this->getParam($params, 'reverse_order'); - - // The order change path - $path = $this->getParam($params, 'path'); - - // The column label - $label = $this->getParam($params, 'label'); - - // The request parameter - $request_parameter_name = $this->getParam($params, 'request_parameter_name', 'order'); - - if ($current_order == $order) { - $sort_direction = 'up'; - $order_change = $reverse_order; - } elseif ($current_order == $reverse_order) { - $sort_direction = 'down'; - $order_change = $order; - } else { - $order_change = $order; - } - - return $this->fetchSnippet($smarty, 'includes/admin-utilities-sortable-column-header', array( - 'admin_utilities_sort_direction' => $sort_direction, - 'admin_utilities_sorting_url' => URL::getInstance()->absoluteUrl($path, array($request_parameter_name => $order_change)), - 'admin_utilities_header_text' => $label - )); - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'admin_sortable_header', $this, 'generateSortableColumnHeader'), - new SmartyPluginDescriptor('function', 'admin_position_block', $this, 'generatePositionChangeBlock'), - new SmartyPluginDescriptor('function', 'option_offset', $this, 'optionOffsetGenerator'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Assets.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Assets.php deleted file mode 100644 index a64578dd..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Assets.php +++ /dev/null @@ -1,106 +0,0 @@ -assetManager = new SmartyAssetsManager( - $assetsManager, - $assetsResolver, - THELIA_WEB_DIR, - $asset_dir_from_web_root - ); - } - - public function declareAssets($params, \Smarty_Internal_Template $template) - { - if (false !== $asset_dir = $this->getParam($params, 'directory', false)) { - $this->assetManager->prepareAssets($asset_dir, $template); - - return ''; - } - - throw new \InvalidArgumentException('declare_assets: parameter "directory" is required'); - } - - public function blockJavascripts($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this->assetManager->processSmartyPluginCall('js', $params, $content, $template, $repeat); - } - - public function blockImages($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this - ->assetManager - ->processSmartyPluginCall(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $content, $template, $repeat); - } - - public function blockStylesheets($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - return $this->assetManager->processSmartyPluginCall('css', $params, $content, $template, $repeat); - } - - public function functionImage($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template); - } - - public function functionAsset($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template, false); - } - - public function functionJavascript($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl(SmartyAssetsManager::ASSET_TYPE_AUTO, $params, $template); - } - - public function functionStylesheet($params, \Smarty_Internal_Template $template) - { - return $this->assetManager->computeAssetUrl('css', $params, $template); - } - - /** - * Define the various smarty plugins hendled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'stylesheets', $this, 'blockStylesheets'), - new SmartyPluginDescriptor('block', 'javascripts', $this, 'blockJavascripts'), - new SmartyPluginDescriptor('block', 'images', $this, 'blockImages'), - - new SmartyPluginDescriptor('function', 'asset', $this, 'functionAsset'), - new SmartyPluginDescriptor('function', 'image', $this, 'functionImage'), - new SmartyPluginDescriptor('function', 'javascript', $this, 'functionJavascript'), - new SmartyPluginDescriptor('function', 'stylesheet', $this, 'functionStylesheet'), - - new SmartyPluginDescriptor('function', 'declare_assets', $this, 'declareAssets') - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Cache.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Cache.php deleted file mode 100644 index 9a01272b..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Cache.php +++ /dev/null @@ -1,124 +0,0 @@ - - */ -class Cache extends AbstractSmartyPlugin -{ - /** @var AdapterInterface */ - protected $adapter; - - /** @var RequestStack */ - protected $requestStack; - - /** @var bool */ - protected $debug; - - /** - * Cache constructor. - * @param AdapterInterface $esiFragmentRenderer - * @param RequestStack $requestStack - * @param bool $debug - */ - public function __construct(AdapterInterface $esiFragmentRenderer, RequestStack $requestStack, $debug) - { - $this->adapter = $esiFragmentRenderer; - $this->requestStack = $requestStack; - $this->debug = $debug; - } - - public function cache(array $params, $content, $template, &$repeat) - { - $key = $this->getParam($params, 'key'); - if (null === $key || empty($key)) { - throw new \InvalidArgumentException( - "Missing 'key' parameter in cache arguments" - ); - } - - $ttl = (int) $this->getParam($params, 'ttl'); - if (null === $ttl) { - throw new \InvalidArgumentException( - "Missing 'ttl' parameter in cache arguments" - ); - } - - if ($this->debug || $ttl < 1) { - if (null !== $content) { - $repeat = false; - return $content; - } - return null; - } - - /** @var CacheItemInterface $cacheItem */ - $cacheItem = $this->adapter->getItem( - $this->generateKey($params) - ); - - if ($cacheItem->isHit()) { - $repeat = false; - return $cacheItem->get(); - } - - if ($content !== null) { - $cacheItem - ->expiresAfter((int) $params['ttl']) - ->set($content); - - $this->adapter->save($cacheItem); - $repeat = false; - return $cacheItem->get(); - } - } - - /** - * @param array $params - * @return string - */ - protected function generateKey(array $params) - { - /** @var Session $session */ - if (null !== $session = $this->requestStack->getCurrentRequest()->getSession()) { - if (!isset($params['lang'])) { - $params['lang'] = $session->getLang(true)->getId(); - } - if (!isset($params['currency'])) { - $params['currency'] = $session->getCurrency(true)->getId(); - } - } - - return 'smarty_cache_' . md5(json_encode($params)); - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'cache', $this, 'cache') - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/CartPostage.php b/local/modules/modules/TheliaSmarty/Template/Plugins/CartPostage.php deleted file mode 100644 index b760060d..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/CartPostage.php +++ /dev/null @@ -1,251 +0,0 @@ -container = $container; - - $this->requestStack = $container->get('request_stack'); - - $this->request = $this->getCurrentRequest(); - - $this->dispatcher = $container->get('event_dispatcher'); - } - - /** - * Get postage amount for cart - * - * @param array $params Block parameters - * @param mixed $content Block content - * @param \Smarty_Internal_Template $template Template - * @param bool $repeat Control how many times - * the block is displayed - * - * @return mixed - */ - public function postage($params, $content, $template, &$repeat) - { - if (!$repeat) { - return (null !== $this->countryId) ? $content : ""; - } - - $customer = $this->getCurrentRequest()->getSession()->getCustomerUser(); - /** @var Address $address */ - /** @var Country $country */ - list($address, $country, $state) = $this->getDeliveryInformation($customer); - - if (null !== $country) { - $this->countryId = $country->getId(); - // try to get the cheapest delivery for this country - $this->getCheapestDelivery($address, $country); - } - - $template->assign('country_id', $this->countryId); - $template->assign('delivery_id', $this->deliveryId); - $template->assign('postage', $this->postage ?: 0.0); - $template->assign('postage_tax', $this->postageTax ?: 0.0); - $template->assign('postage_title', $this->postageTaxRuleTitle ?: 0.0); - $template->assign('is_customizable', $this->isCustomizable); - } - - /** - * Retrieve the delivery country for a customer - * - * The rules : - * - the country of the delivery address of the customer related to the - * cart if it exists - * - the country saved in cookie if customer have changed - * the default country - * - the default country for the shop if it exists - * - * - * @param \Thelia\Model\Customer $customer - * @return \Thelia\Model\Country - */ - protected function getDeliveryInformation(Customer $customer = null) - { - $address = null; - // get the selected delivery address - if (null !== $addressId = $this->getCurrentRequest()->getSession()->getOrder()->getChoosenDeliveryAddress()) { - if (null !== $address = AddressQuery::create()->findPk($addressId)) { - $this->isCustomizable = false; - return [$address, $address->getCountry(), null]; - } - } - - // get country from customer addresses - if (null !== $customer) { - $address = AddressQuery::create() - ->filterByCustomerId($customer->getId()) - ->filterByIsDefault(1) - ->findOne() - ; - - if (null !== $address) { - $this->isCustomizable = false; - - return [$address, $address->getCountry(), null]; - } - } - - // get country from cookie - $cookieName = ConfigQuery::read('front_cart_country_cookie_name', 'fcccn'); - if ($this->getCurrentRequest()->cookies->has($cookieName)) { - $cookieVal = $this->getCurrentRequest()->cookies->getInt($cookieName, 0); - if (0 !== $cookieVal) { - $country = CountryQuery::create()->findPk($cookieVal); - if (null !== $country) { - return [null, $country, null]; - } - } - } - - // get default country for store. - try { - $country = Country::getDefaultCountry(); - - return [null, $country, null]; - } catch (\LogicException $e) { - ; - } - - return [null, null, null]; - } - - /** - * Retrieve the cheapest delivery for country - * - * @param Address $address - * @param \Thelia\Model\Country $country - * @return DeliveryModuleInterface - */ - protected function getCheapestDelivery(Address $address = null, Country $country = null) - { - $cart = $this->getCurrentRequest()->getSession()->getSessionCart(); - - $deliveryModules = ModuleQuery::create() - ->filterByActivate(1) - ->filterByType(BaseModule::DELIVERY_MODULE_TYPE, Criteria::EQUAL) - ->find() - ; - - /** @var \Thelia\Model\Module $deliveryModule */ - foreach ($deliveryModules as $deliveryModule) { - $moduleInstance = $deliveryModule->getDeliveryModuleInstance($this->container); - - try { - $deliveryPostageEvent = new DeliveryPostageEvent($moduleInstance, $cart, $address, $country, $state); - $this->dispatcher->dispatch( - TheliaEvents::MODULE_DELIVERY_GET_POSTAGE, - $deliveryPostageEvent - ); - - if ($deliveryPostageEvent->isValidModule()) { - $postage = $deliveryPostageEvent->getPostage(); - - if (null === $this->postage || $this->postage > $postage->getAmount()) { - $this->postage = $postage->getAmount(); - $this->postageTax = $postage->getAmountTax(); - $this->postageTaxRuleTitle = $postage->getTaxRuleTitle(); - $this->deliveryId = $deliveryModule->getId(); - } - } - } catch (DeliveryException $ex) { - // Module is not available - } - } - } - - /** - * Defines the various smarty plugins handled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('block', 'postage', $this, 'postage') - ); - } - - /** - * @return null|Request - */ - protected function getCurrentRequest() - { - return $this->requestStack->getCurrentRequest(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php b/local/modules/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php deleted file mode 100644 index 0dd8fc90..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/DataAccessFunctions.php +++ /dev/null @@ -1,961 +0,0 @@ - - * - */ -class DataAccessFunctions extends AbstractSmartyPlugin -{ - /** @var SecurityContext */ - private $securityContext; - - /** @var ParserContext */ - protected $parserContext; - - /** @var RequestStack */ - protected $requestStack; - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** @var TaxEngine */ - protected $taxEngine; - - /** @var CouponManager */ - protected $couponManager; - - private static $dataAccessCache = array(); - - public function __construct( - RequestStack $requestStack, - SecurityContext $securityContext, - TaxEngine $taxEngine, - ParserContext $parserContext, - EventDispatcherInterface $dispatcher, - CouponManager $couponManager - ) { - $this->securityContext = $securityContext; - $this->parserContext = $parserContext; - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - $this->taxEngine = $taxEngine; - $this->couponManager = $couponManager; - } - - /** - * Provides access to the current logged administrator attributes using the accessors. - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function adminDataAccess($params, &$smarty) - { - return $this->dataAccess("Admin User", $params, $this->securityContext->getAdminUser()); - } - - /** - * Provides access to the current logged customer attributes thought the accessor - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function customerDataAccess($params, &$smarty) - { - return $this->dataAccess("Customer User", $params, $this->securityContext->getCustomerUser()); - } - - /** - * Provides access to an attribute of the current product - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function productDataAccess($params, &$smarty) - { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - return $this->dataAccessWithI18n( - "Product", - $params, - ProductQuery::create()->filterByPrimaryKey($productId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current category - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function categoryDataAccess($params, &$smarty) - { - $categoryId = $this->getRequest()->get('category_id'); - - if ($categoryId === null) { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - if (null !== $product = ProductQuery::create()->findPk($productId)) { - $categoryId = $product->getDefaultCategoryId(); - } - } - } - - if ($categoryId !== null) { - return $this->dataAccessWithI18n( - "Category", - $params, - CategoryQuery::create()->filterByPrimaryKey($categoryId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current content - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function contentDataAccess($params, &$smarty) - { - $contentId = $this->getRequest()->get('content_id'); - - if ($contentId !== null) { - return $this->dataAccessWithI18n( - "Content", - $params, - ContentQuery::create()->filterByPrimaryKey($contentId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current folder - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function folderDataAccess($params, &$smarty) - { - $folderId = $this->getRequest()->get('folder_id'); - - if ($folderId === null) { - $contentId = $this->getRequest()->get('content_id'); - - if ($contentId !== null) { - if (null !== $content = ContentQuery::create()->findPk($contentId)) { - $folderId = $content->getDefaultFolderId(); - } - } - } - - if ($folderId !== null) { - return $this->dataAccessWithI18n( - "Folder", - $params, - FolderQuery::create()->filterByPrimaryKey($folderId) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the current brand - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function brandDataAccess($params, &$smarty) - { - $brandId = $this->getRequest()->get('brand_id'); - - if ($brandId === null) { - $productId = $this->getRequest()->get('product_id'); - - if ($productId !== null) { - if (null !== $product = ProductQuery::create()->findPk($productId)) { - $brandId = $product->getBrandId(); - } - } - } - - if ($brandId !== null) { - return $this->dataAccessWithI18n( - "Brand", - $params, - BrandQuery::create()->filterByPrimaryKey($brandId) - ); - } - - return ''; - } - - - /** - * Provides access to an attribute of the current currency - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function currencyDataAccess($params, $smarty) - { - $currency = $this->getSession()->getCurrency(); - - if ($currency) { - return $this->dataAccessWithI18n( - "Currency", - $params, - CurrencyQuery::create()->filterByPrimaryKey($currency->getId()), - array("NAME") - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the default country - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function countryDataAccess($params, $smarty) - { - switch ($params["ask"]) { - case "default": - return $this->dataAccessWithI18n( - "defaultCountry", - $params, - CountryQuery::create()->filterByByDefault(1)->limit(1) - ); - } - - return ''; - } - - /** - * Provides access to an attribute of the cart - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function cartDataAccess($params, $smarty) - { - /** @var Country $taxCountry */ - if (array_key_exists('currentCountry', self::$dataAccessCache)) { - $taxCountry = self::$dataAccessCache['currentCountry']; - } else { - $taxCountry = $this->taxEngine->getDeliveryCountry(); - self::$dataAccessCache['currentCountry'] = $taxCountry; - } - - /** @var State $taxState */ - if (array_key_exists('currentState', self::$dataAccessCache)) { - $taxState = self::$dataAccessCache['currentState']; - } else { - $taxState = $this->taxEngine->getDeliveryState(); - self::$dataAccessCache['currentState'] = $taxState; - } - - /** @var Cart $cart */ - $cart = $this->getSession()->getSessionCart($this->dispatcher); - - $result = ""; - switch ($params["attr"]) { - case "count_product": - case "product_count": - $result = $cart->getCartItems()->count(); - break; - case "count_item": - case "item_count": - $count_allitem = 0; - foreach ($cart->getCartItems() as $cartItem) { - $count_allitem += $cartItem->getQuantity(); - } - $result = $count_allitem; - break; - case "total_price": - case "total_price_with_discount": - $result = $cart->getTotalAmount(true); - break; - case "total_price_without_discount": - $result = $cart->getTotalAmount(false); - break; - case "total_taxed_price": - case "total_taxed_price_with_discount": - $result = $cart->getTaxedAmount($taxCountry, true, $taxState); - break; - case "total_taxed_price_without_discount": - $result = $cart->getTaxedAmount($taxCountry, false, $taxState); - break; - case "is_virtual": - case "contains_virtual_product": - $result = $cart->isVirtual(); - break; - case "total_vat": - case 'total_tax_amount': - $result = $cart->getTotalVAT($taxCountry); - break; - case "weight": - $result = $cart->getWeight(); - break; - } - - return $result; - } - - public function couponDataAccess($params, &$smarty) - { - /** @var Order $order */ - $order = $this->getSession()->getOrder(); - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - - switch ($attribute) { - case 'has_coupons': - return count($this->couponManager->getCouponsKept()) > 0; - case 'coupon_count': - return count($this->couponManager->getCouponsKept()); - case 'coupon_list': - $orderCoupons = []; - /** @var CouponInterface $coupon */ - foreach($this->couponManager->getCouponsKept() as $coupon) { - $orderCoupons[] = $coupon->getCode(); - } - return $orderCoupons; - case 'is_delivery_free': - return $this->couponManager->isCouponRemovingPostage($order); - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", 'Order', $attribute)); - } - - /** - * Provides access to an attribute of the current order - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - public function orderDataAccess($params, &$smarty) - { - /** @var Order $order */ - $order = $this->getSession()->getOrder(); - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - switch ($attribute) { - case 'untaxed_postage': - return $order->getUntaxedPostage(); - case 'postage': - return $order->getPostage(); - case 'postage_tax': - return $order->getPostageTax(); - case 'discount': - return $order->getDiscount(); - case 'delivery_address': - return $order->getChoosenDeliveryAddress(); - case 'invoice_address': - return $order->getChoosenInvoiceAddress(); - case 'delivery_module': - return $order->getDeliveryModuleId(); - case 'payment_module': - return $order->getPaymentModuleId(); - case 'has_virtual_product': - return $order->hasVirtualProduct(); - - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", 'Order', $attribute)); - } - - /** - * Provides access to an attribute of the current language - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - - public function langDataAccess($params, $smarty) - { - return $this->dataAccess("Lang", $params, $this->getSession()->getLang()); - } - - public function configDataAccess($params, $smarty) - { - $key = $this->getParam($params, 'key', false); - - if ($key === false) { - return null; - } - - $default = $this->getParam($params, 'default', ''); - - return ConfigQuery::read($key, $default); - } - - /** - * Provides access to a module configuration value - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the configuration value - */ - - public function moduleConfigDataAccess($params, $smarty) - { - $key = $this->getParam($params, 'key', false); - $moduleCode = $this->getParam($params, 'module', false); - $locale = $this->getParam($params, 'locale'); - - if (null === $locale) { - $locale = $this->getSession()->getLang()->getLocale(); - } - - if ($key === false || $moduleCode === false) { - return null; - } - - $default = $this->getParam($params, 'default', ''); - - if (null !== $module = ModuleQuery::create()->findOneByCode($moduleCode)) { - return ModuleConfigQuery::create() - ->getConfigValue( - $module->getId(), - $key, - $default, - $locale - ); - } else { - Tlog::getInstance()->addWarning( - sprintf( - "Module code '%s' not found in module-config Smarty function", - $moduleCode - ) - ); - - $value = $default; - } - - return $value; - } - - /** - * Provides access to sales statistics - * - * @param array $params - * @param \Smarty $smarty - * @return string the value of the requested attribute - */ - - public function statsAccess($params, $smarty) - { - if (false === array_key_exists("key", $params)) { - throw new \InvalidArgumentException(sprintf("missing key attribute in stats access function")); - } - if (false === array_key_exists("startDate", $params) || $params['startDate'] === '') { - throw new \InvalidArgumentException(sprintf("missing startDate attribute in stats access function")); - } - if (false === array_key_exists("endDate", $params) || $params['endDate'] === '') { - throw new \InvalidArgumentException(sprintf("missing endDate attribute in stats access function")); - } - - if (false !== array_key_exists("includeShipping", $params) && $params['includeShipping'] == 'false') { - $includeShipping = false; - } else { - $includeShipping = true; - } - - if ($params['startDate'] == 'today') { - $startDate = new \DateTime(); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'yesterday') { - $startDate = new \DateTime(); - $startDate->setTime(0, 0, 0); - $startDate->modify('-1 day'); - } elseif ($params['startDate'] == 'this_month') { - $startDate = new \DateTime(); - $startDate->modify('first day of this month'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'last_month') { - $startDate = new \DateTime(); - $startDate->modify('first day of last month'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'this_year') { - $startDate = new \DateTime(); - $startDate->modify('first day of January this year'); - $startDate->setTime(0, 0, 0); - } elseif ($params['startDate'] == 'last_year') { - $startDate = new \DateTime(); - $startDate->modify('first day of January last year'); - $startDate->setTime(0, 0, 0); - } else { - try { - $startDate = new \DateTime($params['startDate']); - } catch (\Exception $e) { - throw new \InvalidArgumentException( - sprintf("invalid startDate attribute '%s' in stats access function", $params['startDate']) - ); - } - } - - if ($params['endDate'] == 'today') { - $endDate = new \DateTime(); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'yesterday') { - $endDate = new \DateTime(); - $endDate->setTime(0, 0, 0); - $endDate->modify('-1 day'); - } elseif ($params['endDate'] == 'this_month') { - $endDate = new \DateTime(); - $endDate->modify('last day of this month'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'last_month') { - $endDate = new \DateTime(); - $endDate->modify('last day of last month'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'this_year') { - $endDate = new \DateTime(); - $endDate->modify('last day of December this year'); - $endDate->setTime(0, 0, 0); - } elseif ($params['endDate'] == 'last_year') { - $endDate = new \DateTime(); - $endDate->modify('last day of December last year'); - $endDate->setTime(0, 0, 0); - } else { - try { - $endDate = new \DateTime($params['endDate']); - } catch (\Exception $e) { - throw new \InvalidArgumentException( - sprintf("invalid endDate attribute '%s' in stats access function", $params['endDate']) - ); - } - } - - switch ($params['key']) { - case 'sales': - return OrderQuery::getSaleStats($startDate, $endDate, $includeShipping); - break; - case 'orders': - return OrderQuery::getOrderStats($startDate, $endDate, array(1,2,3,4)); - break; - } - - throw new \InvalidArgumentException( - sprintf("invalid key attribute '%s' in stats access function", $params['key']) - ); - } - - /** - * Retrieve meta data associated to an element - * - * params should contain at least key an id attributes. Thus it will return - * an array of associated data. - * - * If meta argument is specified then it will return an unique value. - * - * @param array $params - * @param \Smarty $smarty - * - * @throws \InvalidArgumentException - * - * @return string|array|null - */ - public function metaAccess($params, $smarty) - { - $meta = $this->getParam($params, 'meta', null); - $key = $this->getParam($params, 'key', null); - $id = $this->getParam($params, 'id', null); - - $cacheKey = sprintf('meta_%s_%s_%s', $meta, $key, $id); - - $out = null; - - if (array_key_exists($cacheKey, self::$dataAccessCache)) { - return self::$dataAccessCache[$cacheKey]; - } - - if ($key !== null && $id !== null) { - if ($meta === null) { - $out = MetaDataQuery::getAllVal($key, (int) $id); - } else { - $out = MetaDataQuery::getVal($meta, $key, (int) $id); - } - } else { - throw new \InvalidArgumentException("key and id arguments are required in meta access function"); - } - - self::$dataAccessCache[$cacheKey] = $out; - - if (!empty($params['out'])) { - $smarty->assign($params['out'], $out); - - return $out !== null ? true : false; - } else { - if (is_array($out)) { - throw new \InvalidArgumentException('The argument "out" is required if the meta value is an array'); - } - - return $out; - } - } - - /** - * @param $objectLabel - * @param $params - * @param ModelCriteria $search - * @param array $columns - * @param null $foreignTable - * @param string $foreignKey - * - * @return string - */ - protected function dataAccessWithI18n( - $objectLabel, - $params, - ModelCriteria $search, - $columns = array('TITLE', 'CHAPO', 'DESCRIPTION', 'POSTSCRIPTUM'), - $foreignTable = null, - $foreignKey = 'ID' - ) { - if (array_key_exists('data_' . $objectLabel, self::$dataAccessCache)) { - $data = self::$dataAccessCache['data_' . $objectLabel]; - } else { - $lang = $this->getNormalizedParam($params, array('lang')); - if ($lang === null) { - $lang = $this->getSession()->getLang()->getId(); - } - - ModelCriteriaTools::getI18n( - false, - $lang, - $search, - $this->getSession()->getLang()->getLocale(), - $columns, - $foreignTable, - $foreignKey, - true - ); - - $data = $search->findOne(); - - self::$dataAccessCache['data_' . $objectLabel] = $data; - } - - if ($data !== null) { - $noGetterData = array(); - - foreach ($columns as $column) { - $noGetterData[$column] = $data->getVirtualColumn('i18n_' . $column); - } - - return $this->dataAccess($objectLabel, $params, $data, $noGetterData); - } else { - throw new NotFoundHttpException(); - } - } - - /** - * @param $objectLabel - * @param $params - * @param $data - * @param array $noGetterData - * - * @return string - * @throws \InvalidArgumentException - */ - protected function dataAccess($objectLabel, $params, $data, $noGetterData = array()) - { - $attribute = $this->getNormalizedParam($params, array('attribute', 'attrib', 'attr')); - - if (!empty($attribute)) { - if (null != $data) { - $keyAttribute = strtoupper($attribute); - if (array_key_exists($keyAttribute, $noGetterData)) { - return $noGetterData[$keyAttribute]; - } - - $getter = sprintf("get%s", $this->underscoreToCamelcase($attribute)); - if (method_exists($data, $getter)) { - $return = $data->$getter(); - - if ($return instanceof \DateTime) { - if (array_key_exists("format", $params)) { - $format = $params["format"]; - } else { - $format = DateTimeFormat::getInstance($this->getRequest())->getFormat( - array_key_exists("output", $params) ? $params["output"] : null - ); - } - - $return = $return->format($format); - } - - return $return; - } - - throw new \InvalidArgumentException(sprintf("%s has no '%s' attribute", $objectLabel, $attribute)); - } - } - - return ''; - } - - /** - * Transcode an underscored string into a camel-cased string, eg. default_folder into DefaultFolder - * - * @param string $str the string to convert from underscore to camel-case - * - * @return string the camel cased string. - */ - private function underscoreToCamelcase($str) - { - // Split string in words. - $words = explode('_', strtolower($str)); - - $return = ''; - - foreach ($words as $word) { - $return .= ucfirst(trim($word)); - } - - return $return; - } - - - - - /** - * Provides access to the uploaded store-related images (such as logo or favicon) - * - * @param array $params - * @param string $content - * @param \Smarty_Internal_Template $template - * @param boolean $repeat - * @return string|null - */ - public function storeMediaDataAccess($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $type = $this->getParam($params, 'type', null); - $allowedTypes = ['favicon', 'logo', 'banner']; - - - if ($type !== null && in_array($type, $allowedTypes)) { - switch ($type) { - case 'favicon': - $configKey = 'favicon_file'; - $defaultImageName = 'favicon.png'; - break; - case 'logo': - $configKey = 'logo_file'; - $defaultImageName = 'logo.png'; - break; - case 'banner': - $configKey = 'banner_file'; - $defaultImageName = 'banner.jpg'; - break; - } - - $uploadDir = ConfigQuery::read('images_library_path'); - - if ($uploadDir === null) { - $uploadDir = THELIA_LOCAL_DIR . 'media' . DS . 'images'; - } else { - $uploadDir = THELIA_ROOT . $uploadDir; - } - - $uploadDir .= DS . 'store'; - - - $imageFileName = ConfigQuery::read($configKey); - - $skipImageTransform = false; - - // If we couldn't find the image path in the config table or if it doesn't exist, we take the default image provided. - if ($imageFileName == null) { - $imageSourcePath = $uploadDir . DS . $defaultImageName; - } else { - $imageSourcePath = $uploadDir . DS . $imageFileName; - - if (!file_exists($imageSourcePath)) { - Tlog::getInstance()->error(sprintf('Source image file %s does not exists.', $imageSourcePath)); - $imageSourcePath = $uploadDir . DS . $defaultImageName; - } - - if ($type == 'favicon') { - $extension = pathinfo($imageSourcePath, PATHINFO_EXTENSION); - if ($extension == 'ico') { - $mime_type = 'image/x-icon'; - - // If the media is a .ico favicon file, we skip the image transformations, - // as transformations on .ico file are not supported by Thelia. - $skipImageTransform = true; - } else { - $mime_type = 'image/png'; - } - - $template->assign('MEDIA_MIME_TYPE', $mime_type); - } - } - - $event = new ImageEvent(); - $event->setSourceFilepath($imageSourcePath) - ->setCacheSubdirectory('store'); - - - if (!$skipImageTransform) { - switch ($this->getParam($params, 'resize_mode', null)) { - case 'crop': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_CROP; - break; - - case 'borders': - $resize_mode = \Thelia\Action\Image::EXACT_RATIO_WITH_BORDERS; - break; - - case 'none': - default: - $resize_mode = \Thelia\Action\Image::KEEP_IMAGE_RATIO; - } - - // Prepare transformations - $width = $this->getParam($params, 'width', null); - $height = $this->getParam($params, 'height', null); - $rotation = $this->getParam($params, 'rotation', null); - - if (!is_null($width)) { - $event->setWidth($width); - } - if (!is_null($height)) { - $event->setHeight($height); - } - $event->setResizeMode($resize_mode); - if (!is_null($rotation)) { - $event->setRotation($rotation); - } - } - - $this->dispatcher->dispatch(TheliaEvents::IMAGE_PROCESS, $event); - - $template->assign('MEDIA_URL', $event->getFileUrl()); - } - - if (isset($content)) { - return $content; - } - - return null; - } - - - - - /** - * @inheritdoc - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'admin', $this, 'adminDataAccess'), - new SmartyPluginDescriptor('function', 'customer', $this, 'customerDataAccess'), - new SmartyPluginDescriptor('function', 'product', $this, 'productDataAccess'), - new SmartyPluginDescriptor('function', 'category', $this, 'categoryDataAccess'), - new SmartyPluginDescriptor('function', 'content', $this, 'contentDataAccess'), - new SmartyPluginDescriptor('function', 'folder', $this, 'folderDataAccess'), - new SmartyPluginDescriptor('function', 'brand', $this, 'brandDataAccess'), - new SmartyPluginDescriptor('function', 'currency', $this, 'currencyDataAccess'), - new SmartyPluginDescriptor('function', 'country', $this, 'countryDataAccess'), - new SmartyPluginDescriptor('function', 'lang', $this, 'langDataAccess'), - new SmartyPluginDescriptor('function', 'cart', $this, 'cartDataAccess'), - new SmartyPluginDescriptor('function', 'order', $this, 'orderDataAccess'), - new SmartyPluginDescriptor('function', 'config', $this, 'configDataAccess'), - new SmartyPluginDescriptor('function', 'stats', $this, 'statsAccess'), - new SmartyPluginDescriptor('function', 'meta', $this, 'metaAccess'), - new SmartyPluginDescriptor('function', 'module_config', $this, 'moduleConfigDataAccess'), - new SmartyPluginDescriptor('function', 'coupon', $this, 'couponDataAccess'), - - new SmartyPluginDescriptor('block', 'local_media', $this, 'storeMediaDataAccess'), - ); - } - - /** - * @return Request - */ - protected function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->getRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Esi.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Esi.php deleted file mode 100644 index 6bee285c..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Esi.php +++ /dev/null @@ -1,73 +0,0 @@ - - */ -class Esi extends AbstractSmartyPlugin -{ - /** @var EsiFragmentRenderer */ - protected $esiFragmentRender; - - /** @var RequestStack */ - protected $requestStack; - - public function __construct(EsiFragmentRenderer $esiFragmentRenderer, RequestStack $requestStack) - { - $this->esiFragmentRender = $esiFragmentRenderer; - $this->requestStack = $requestStack; - } - - public function renderEsi($params, $template = null) - { - $path = $this->getParam($params, 'path'); - $alt = $this->getParam($params, 'alt'); - $ignore_errors = $this->getParam($params, 'ignore_errors'); - $comment = $this->getParam($params, 'comment'); - - if (null === $path) { - return; - } - - $response = $this->esiFragmentRender->render($path, $this->requestStack->getCurrentRequest(), array( - 'alt' => $alt, - 'ignore_errors' => $ignore_errors, - 'comment' => $comment - )); - - if (!$response->isSuccessful()) { - return null; - } - - return $response->getContent(); - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'render_esi', $this, 'renderEsi') - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/FlashMessage.php b/local/modules/modules/TheliaSmarty/Template/Plugins/FlashMessage.php deleted file mode 100644 index 7ad9a5a2..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/FlashMessage.php +++ /dev/null @@ -1,155 +0,0 @@ -{$MESSAGE} - * {/flash} - * ``` - * Class Form - * - * @package Thelia\Core\Template\Smarty\Plugins - * @author Guillaume MOREL - * @author Julien Chanséaume - */ -class FlashMessage extends AbstractSmartyPlugin -{ - /** @var RequestStack Request service */ - protected $requestStack; - - /** @var FlashMessageBag $results */ - protected $results; - - /** @var Translator */ - protected $translator; - - public function __construct(RequestStack $requestStack, Translator $translator) - { - $this->requestStack = $requestStack; - $this->translator = $translator; - } - - /** - * Process the count function: executes a loop and return the number of items found - * - * @param array $params parameters array - * @param \Smarty_Internal_Template $template - * - * @return int the item count - * @throws \InvalidArgumentException if a parameter is missing - * - */ - public function hasFlashMessage( - $params, - /** @noinspection PhpUnusedParameterInspection */ - $template - ) { - $type = $this->getParam($params, 'type', null); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in {hasflash} function arguments") - ); - } - - return $this->getSession()->getFlashBag()->has($type); - } - - /** - * Get FlashMessage - * And clean session from this key - * - * @param array $params Block parameters - * @param mixed $content Block content - * @param \Smarty_Internal_Template $template Template - * @param bool $repeat Control how many times - * the block is displayed - * - * @return mixed - */ - public function getFlashMessage($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $type = $this->getParam($params, 'type', false); - - if (null === $content) { - $this->results = new FlashMessageBag(); - - if (false === $type) { - $this->results->addAll($this->getSession()->getFlashBag()->all()); - } else { - $this->results->add( - $type, - $this->getSession()->getFlashBag()->get($type, []) - ); - } - - if ($this->results->isEmpty()) { - $repeat = false; - } - } else { - $this->results->next(); - } - - if ($this->results->valid()) { - $message = $this->results->current(); - $template->assign("TYPE", $message["type"]); - $template->assign("MESSAGE", $message["message"]); - - $repeat = true; - } - - if ($content !== null) { - if ($this->results->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return [ - new SmartyPluginDescriptor("function", "hasflash", $this, "hasFlashMessage"), - new SmartyPluginDescriptor("block", "flash", $this, "getFlashMessage") - ]; - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Form.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Form.php deleted file mode 100644 index 335b79a4..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Form.php +++ /dev/null @@ -1,1029 +0,0 @@ - find form named myForm, - * create an instance and assign this instanciation into smarty variable. Form must be declare into - * config using tag - * - * - {form_field form=$form.fieldName} {/form_field} This block find info into the Form field containing by - * the form paramter. This field must be an instance of FormView. fieldName is the name of your field. This block - * can output these info : - * * $name => name of yout input - * * $value => value for your input - * * $label => label for your input - * * $error => boolean for know if there is error for this field - * * $attr => all your attribute for your input (define when you construct programmatically you form) - * - * - {form_error form=$form.fieldName} ... {/form_error} Display this block if there are errors on this field. - * fieldName is the name of your field - * - * Class Form - * @package Thelia\Core\Template\Smarty\Plugins - */ -class Form extends AbstractSmartyPlugin -{ - const COLLECTION_TYPE_NAME = "collection"; - - private static $taggedFieldsStack = null; - private static $taggedFieldsStackPosition = null; - - /** @var ContainerInterface */ - protected $container; - - /** @var ParserContext $parserContext */ - protected $parserContext; - - /** @var ParserInterface $parser */ - protected $parser; - - protected $formDefinition = array(); - - /** @var array|TheliaFormFactoryInterface */ - protected $formFactory = array(); - - /** @var array The form collection stack */ - protected $formCollectionStack = array(); - - /** @var array Counts collection loop in page */ - protected $formCollectionCount = array(); - - public function __construct( - TheliaFormFactoryInterface $formFactory, - ParserContext $parserContext, - ParserInterface $parser - ) { - $this->formFactory = $formFactory; - $this->parserContext = $parserContext; - $this->parser = $parser; - } - - public function setFormDefinition($formDefinition) - { - foreach ($formDefinition as $name => $className) { - if (array_key_exists($name, $this->formDefinition)) { - throw new \InvalidArgumentException( - sprintf("%s form name already exists for %s class", $name, $className) - ); - } - - $this->formDefinition[$name] = $className; - } - } - - public function generateForm($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if ($repeat) { - $name = $this->getParam($params, 'name'); - $formType = $this->getParam($params, 'type', 'form'); - - if (null == $name) { - $name = "thelia.empty"; - } - - if (!isset($this->formDefinition[$name])) { - throw new ElementNotFoundException(sprintf("%s form does not exists", $name)); - } - - $formClass = $this->formDefinition[$name]; - - // Check if parser context contains our form - $instance = $this->parserContext->getForm($name, $formClass, $formType); - - if (null === $instance) { - // If not, create a new instance - $instance = $this->formFactory->createForm($name); - } - - // Set the current form - $this->parserContext->pushCurrentForm($instance); - - $instance->createView(); - - $template->assign("form", $instance); - $template->assign("form_name", $instance->getName()); - - $template->assign("form_error", $instance->hasError() ? true : false); - $template->assign("form_error_message", $instance->getErrorMessage()); - } else { - $this->parserContext->popCurrentForm(); - - return $content; - } - } - - /** - * @param \Smarty_Internal_Template $template - * @param string $fieldName - * @param string $fieldValue - * @param string $fieldType - * @param array $fieldVars - * @param int $total_value_count - */ - protected function assignFieldValues( - $template, - $fieldName, - $fieldValue, - $fieldType, - $fieldVars, - $total_value_count = 1 - ) { - $template->assign("name", $fieldName); - $template->assign("value", $fieldValue); - $template->assign("data", $fieldVars['data']); - - $template->assign("type", $fieldType); - - $template->assign("checked", isset($fieldVars['data']) ? $fieldVars['data'] : false); - $template->assign("choices", isset($fieldVars['choices']) ? $fieldVars['choices'] : false); - $template->assign("multiple", isset($fieldVars['multiple']) ? $fieldVars['multiple'] : false); - $template->assign("disabled", isset($fieldVars['disabled']) ? $fieldVars['disabled'] : false); - $template->assign("read_only", isset($fieldVars['read_only']) ? $fieldVars['read_only'] : false); - $template->assign("max_length", isset($fieldVars['max_length']) ? $fieldVars['max_length'] : false); - $template->assign('required', isset($fieldVars['required']) ? $fieldVars['required'] : false); - - $template->assign("label", $fieldVars["label"]); - $template->assign("label_attr", $fieldVars["label_attr"]); - - $template->assign('total_value_count', $total_value_count); - - /** @var FormErrorIterator $errors */ - $errors = $fieldVars["errors"]; - if ($errors) { - $template->assign("error", $errors->count() ? true : false); - $this->assignFieldErrorVars($template, $errors); - } - - $attr = array(); - - foreach ($fieldVars["attr"] as $key => $value) { - $attr[] = sprintf('%s="%s"', $key, $value); - } - - $template->assign("attr", implode(" ", $attr)); - $template->assign("attr_list", $fieldVars["attr"]); - } - - /** - * @param \Smarty_Internal_Template $template - * @param FormConfigInterface $formFieldConfig - * @param FormView $formFieldView - */ - protected function assignFormTypeValues($template, $formFieldConfig, $formFieldView) - { - $formFieldType = $formFieldConfig->getType()->getInnerType(); - - /* access to choices */ - if ($formFieldType instanceof ChoiceType) { - $template->assign("choices", $formFieldView->vars['choices']); - } - - /* access to collections */ - if ($formFieldType instanceof CollectionType) { - if (true === $formFieldConfig->getOption('prototype')) { - } else { - /* access to choices */ - if (isset($formFieldView->vars['choices'])) { - $template->assign("choices", $formFieldView->vars['choices']); - } - } - } - - /* access to date */ - if ($formFieldType instanceof DateType || $formFieldType instanceof DateTimeType || $formFieldType instanceof BirthdayType) { - if ('choice' === $formFieldConfig->getOption('widget')) { - /* access to years */ - if ($formFieldConfig->getOption('years')) { - $formFieldView->vars['years'] = $formFieldConfig->getOption('years'); - $template->assign("years", $formFieldView->vars['years']); - } - - /* access to month */ - if ($formFieldConfig->getOption('months')) { - $formFieldView->vars['months'] = $formFieldConfig->getOption('months'); - $template->assign("months", $formFieldView->vars['months']); - } - - /* access to days */ - if ($formFieldConfig->getOption('days')) { - $formFieldView->vars['days'] = $formFieldConfig->getOption('days'); - $template->assign("days", $formFieldView->vars['days']); - } - - /* access to empty_value */ - if ($formFieldConfig->getOption('empty_value')) { - $formFieldView->vars['empty_value'] = $formFieldConfig->getOption('empty_value'); - $template->assign("empty_value", $formFieldView->vars['empty_value']); - } - } - } - - /* access to thelia type */ - if ($formFieldType instanceof TheliaType) { - $template->assign("formType", $formFieldView->vars['type']); - - switch ($formFieldView->vars['type']) { - case "choice": - if (!isset($formFieldView->vars['options']['choices']) || - !is_array($formFieldView->vars['options']['choices']) - ) { - //throw new - } - $choices = array(); - foreach ($formFieldView->vars['options']['choices'] as $value => $choice) { - $choices[] = new ChoiceView($value, $value, $choice); - } - $template->assign("choices", $choices); - break; - } - } - } - - /** - * @param array $params - * @param \Smarty_Internal_Template $template - */ - protected function processFormField($params, $template) - { - $formFieldView = $this->getFormFieldView($params); - $formFieldConfig = $this->getFormFieldConfig($params); - - $formFieldType = $formFieldConfig->getType()->getName(); - - $this->assignFormTypeValues($template, $formFieldConfig, $formFieldView); - - $value = $formFieldView->vars["value"]; - - $key = $this->getParam($params, 'value_key', null); - - // We (may) have a collection - if ($key !== null) { - // Force array - if (!is_array($value)) { - $value = array(); - } - - // If the field is not found, use an empty value - $name = sprintf("%s[%s]", $formFieldView->vars["full_name"], $key); - - $val = $value[$key]; - - // For collection types, the type of field is defined in the 'type' option. - // We will use this instead of the 'collection' type - $formFieldType = $formFieldConfig->getType()->getInnerType(); - - if ($formFieldType instanceof CollectionType) { - $formFieldType = $formFieldConfig->getOption('type'); - } - - $this->assignFieldValues( - $template, - $name, - $val, - $formFieldType, - $formFieldView->vars, - count($formFieldView->children) - ); - } else { - $this->assignFieldValues( - $template, - $formFieldView->vars["full_name"], - $formFieldView->vars["value"], - $formFieldType, - $formFieldView->vars - ); - } - - $formFieldView->setRendered(); - } - - public function renderFormField($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if ($repeat) { - $this->processFormField($params, $template); - } else { - return $content; - } - } - - /** - * @param array $params - * @param string $content - * @param string $templateFile - * @param \Smarty_Internal_Template $template - * @return string - */ - protected function automaticFormFieldRendering($params, $content, $template, $templateFile) - { - $data = ''; - - $templateStyle = $this->getParam($params, 'template', 'standard'); - - $snippet_path = sprintf( - '%s' . DS . 'forms' . DS . '%s' . DS . '%s.html', - $this->parser->getTemplateDefinition()->getAbsolutePath(), - $templateStyle, - $templateFile - ); - - if (false !== $snippet_content = file_get_contents($snippet_path)) { - $this->processFormField($params, $template); - - if (null === $form = $this->getParam($params, 'form', null)) { - $form = $this->parserContext->getCurrentForm(); - } - - $field_name = $this->getParam($params, 'field', false); - $field_extra_class = $this->getParam($params, 'extra_class', ''); - $field_extra_class = $this->getParam($params, 'extra_classes', $field_extra_class); - $field_no_standard_classes = $this->getParam($params, 'no_standard_classes', false); - $field_value = $this->getParam($params, 'value', ''); - $show_label = $this->getParam($params, 'show_label', true); - $value_key = $this->getParam($params, 'value_key', false); - - $template->assign([ - 'content' => trim($content), - 'form' => $form, - 'field_name' => $field_name, - 'field_extra_class' => $field_extra_class, - 'field_no_standard_classes' => $field_no_standard_classes, - 'field_value' => $field_value, - 'field_template' => $templateStyle, - 'value_key' => $value_key, - 'show_label' => $show_label, - ]); - - $data = $template->fetch(sprintf('string:%s', $snippet_content)); - } - - return $data; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return mixed - */ - public function customFormFieldRendering($params, $content, $template, &$repeat) - { - if (!$repeat) { - return $this->automaticFormFieldRendering($params, $content, $template, 'form-field-renderer'); - } - } - - public function standardFormFieldRendering($params, \Smarty_Internal_Template $template) - { - return $this->automaticFormFieldRendering($params, '', $template, 'form-field-renderer'); - } - - public function standardFormFieldAttributes($params, \Smarty_Internal_Template $template) - { - return $this->automaticFormFieldRendering($params, '', $template, 'form-field-attributes-renderer'); - } - - public function renderTaggedFormFields($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if (null === $content) { - self::$taggedFieldsStack = $this->getFormFieldsFromTag($params); - self::$taggedFieldsStackPosition = 0; - } else { - self::$taggedFieldsStackPosition++; - } - - if (isset(self::$taggedFieldsStack[self::$taggedFieldsStackPosition])) { - $field = self::$taggedFieldsStack[self::$taggedFieldsStackPosition]; - - $this->assignFieldValues( - $template, - $field['view']->vars["full_name"], - $field['view']->vars["value"], - $field['config']->getType()->getName(), - $field['view']->vars - ); - - $this->assignFormTypeValues($template, $field['config'], $field['view']); - - $field['view']->setRendered(); - - $repeat = true; - } - - if (!$repeat) { - self::$taggedFieldsStack = null; - self::$taggedFieldsStackPosition = null; - } - - if (null !== $content) { - return $content; - } - } - - public function renderHiddenFormField($params, \Smarty_Internal_Template $template) - { - $attrFormat = '%s="%s"'; - $field = ''; - - $baseFormInstance = $this->getInstanceFromParams($params); - - $formView = $baseFormInstance->getView(); - - $return = ""; - - $exclude = explode(',', $this->getParam($params, 'exclude', '')); - - /** @var FormView $row */ - foreach ($formView->getIterator() as $row) { - // We have to exclude the fields for which value is defined in the template. - if ($baseFormInstance->isTemplateDefinedHiddenField($row) - || - in_array($row->vars['name'], $exclude) - ) { - continue; - } - - if ($this->isHidden($row) && $row->isRendered() === false) { - $attributeList = array(); - if (isset($row->vars["attr"])) { - foreach ($row->vars["attr"] as $attrKey => $attrValue) { - $attributeList[] = sprintf($attrFormat, $attrKey, $attrValue); - } - } - $return .= sprintf($field, $row->vars["full_name"], $row->vars["value"], implode(' ', $attributeList)); - } - } - - return $return; - } - - public function formEnctype($params, \Smarty_Internal_Template $template) - { - $instance = $this->getInstanceFromParams($params); - - $formView = $instance->getView(); - - if ($formView->vars["multipart"]) { - return sprintf('%s="%s"', "enctype", "multipart/form-data"); - } - } - - public function formError($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - $formFieldView = $this->getFormFieldView($params); - - /** @var FormErrorIterator $errors */ - $errors = $formFieldView->vars["errors"]; - - if (!$errors->count()) { - return ""; - } - - if ($repeat) { - $this->assignFieldErrorVars($template, $errors); - } else { - return $content; - } - } - - protected function assignFieldErrorVars(\Smarty_Internal_Template $template, FormErrorIterator $errors) - { - if ($errors->count()) { - $template->assign("message", $errors[0]->getMessage()); - $template->assign("parameters", $errors[0]->getMessageParameters()); - $template->assign("pluralization", $errors[0]->getMessagePluralization()); - } - } - - protected function isHidden(FormView $formView) - { - return array_search("hidden", $formView->vars["block_prefixes"]); - } - - /** - * @param $params - * @return FormView - * @throws \InvalidArgumentException - */ - protected function getFormFieldView($params) - { - $instance = $this->getInstanceFromParams($params); - - $fieldName = $this->getParam($params, 'field'); - - if (null == $fieldName) { - throw new \InvalidArgumentException("'field' parameter is missing"); - } - - $view = $this->retrieveField( - $fieldName, - $instance->getView(), - $instance->getName() - ); - - return $view; - } - - protected function getFormFieldsFromTag($params) - { - $instance = $this->getInstanceFromParams($params); - - $tag = $this->getParam($params, 'tag'); - - if (null == $tag) { - throw new \InvalidArgumentException("'tag' parameter is missing"); - } - - $viewList = array(); - foreach ($instance->getView() as $view) { - if (isset($view->vars['attr']['tag']) && $tag == $view->vars['attr']['tag']) { - $fieldData = $instance->getForm()->all()[$view->vars['name']]; - $viewList[] = array( - 'view' => $view, - 'config' => $fieldData->getConfig(), - ); - } - } - - return $viewList; - } - - /** - * @param $params - * @return FormConfigInterface - * @throws \InvalidArgumentException - */ - protected function getFormFieldConfig($params) - { - $instance = $this->getInstanceFromParams($params); - - $fieldName = $this->getParam($params, 'field'); - - if (null == $fieldName) { - throw new \InvalidArgumentException("'field' parameter is missing"); - } - - $fieldData = $this->retrieveField( - $fieldName, - $instance->getForm()->all(), - $instance->getName() - ); - - if (empty($fieldData)) { - throw new \InvalidArgumentException( - sprintf( - "Field name '%s' not found in form %s children", - $fieldName, - $instance->getName() - ) - ); - } - - return $fieldData->getConfig(); - } - - /** - * @param $params - * @return BaseForm - * @throws \InvalidArgumentException - */ - protected function getInstanceFromParams($params) - { - if (null === $instance = $this->getParam($params, 'form')) { - $instance = $this->parserContext->getCurrentForm(); - } - - if (null == $instance) { - throw new \InvalidArgumentException( - "Missing 'form' parameter in form arguments, and no current form was found." - ); - } - - if (!$instance instanceof BaseForm) { - throw new \InvalidArgumentException( - sprintf( - "form parameter in form_field block must be an instance of " . - "\Thelia\Form\BaseForm, instance of %s found", - get_class($instance) - ) - ); - } - - return $instance; - } - - /** - * @param $needle - * @param $haystack - * @param $formName - * @return \Symfony\Component\Form\Form - */ - protected function retrieveField($needle, $haystack, $formName) - { - $splitName = explode(".", $needle); - - foreach ($splitName as $level) { - if (empty($haystack[$level])) { - throw new \InvalidArgumentException( - sprintf("Field name '%s' not found in form %s", $needle, $formName) - ); - } - $haystack = $haystack[$level]; - } - - return $haystack; - } - - /** - * @param $params - * @param $name - * @param bool $throwException - * @return mixed|null - * - * Get a symfony form object form a function/block parameter - */ - protected function getSymfonyFormFromParams($params, $name, $throwException = false) - { - $sfForm = $this->getParam($params, $name); - - if (null === $sfForm && false === $throwException) { - return null; - } - - if (!$sfForm instanceof SymfonyForm) { - throw new \InvalidArgumentException( - sprintf( - "%s parameter must be an instance of " . - "\Symfony\Component\Form\Form, instance of %s found", - $name, - is_object($sfForm) ? get_class($sfForm) : gettype($sfForm) - ) - ); - } - - return $sfForm; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return mixed - * - * Loops around a form collection entries and assigns values to template - */ - public function renderFormCollection($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - /** - * Get parameters - */ - $form = $this->getInstanceFromParams($params); - $row = $this->getSymfonyFormFromParams($params, "row"); - $collection = $this->resolveCollection($this->getParam($params, "collection"), $form); - - $hash = $this->initializeCollection($form, $collection, $row); - - $limit = $this->getParam($params, "limit", -1); - - /** - * Check if it has a limit - */ - if (!preg_match("#^\-?\d+$#", $limit)) { - throw new \InvalidArgumentException( - sprintf( - "Invalid value for 'limit' parameter in 'form_collection'. '%s' given, integer expected", - $limit - ) - ); - } - - /** - * Then load stack and create the stack count - */ - $limit = (int)$limit; - $hasLimit = $limit >= 0; - - /** - * If we have reached the limit, stop - */ - $collectionLimit = $this->formCollectionCount[$hash]["limit"]; - - if (($hasLimit && $limit === $collectionLimit) || - null === $row = array_shift($this->formCollectionStack[$hash]) - ) { - $repeat = false; - - /** - * Reload stack limit - */ - $this->formCollectionCount[$hash]["limit"] = 0; - - return $content; - } - - /** - * Assign variables into the template - */ - $template->assign("row", $row); - $template->assign("collection_current", $this->formCollectionCount[$hash]["count"]++); - $template->assign("collection_count", $this->formCollectionCount[$hash]["total_count"]); - - /** - * Increment the current limit state - * Force the repeat - */ - $this->formCollectionCount[$hash]["limit"]++; - $repeat = true; - - /** - * ANd return the content - */ - - return $content; - } - - /** - * @param BaseForm $form - * @param SymfonyForm $field - * @return string - * - * Get definition, return hash - */ - protected function getFormStackHash(BaseForm $form, SymfonyForm $field = null) - { - $build = get_class($form) . ":" . $form->getType(); - - if (null !== $field) { - $build .= ":" . $this->buildFieldName($field); - } - - return md5($build); - } - - /** - * @param $collection - * @param BaseForm $form - * @return SymfonyForm - * - * Extract the collection object from the form - */ - protected function resolveCollection($collection, BaseForm $form) - { - if (null === $collection) { - throw new \InvalidArgumentException( - "Missing parameter 'collection' in 'form_collection" - ); - } - - $sfForm = $form->getForm(); - - if (!$sfForm->has($collection)) { - throw new \InvalidArgumentException( - sprintf( - "Field name '%s' not found in form %s children", - $collection, - $form->getName() - ) - ); - } - - /** - * Check that the field is a "collection" type - */ - $collectionConfig = $this->retrieveField( - $collection, - $sfForm->all(), - $form->getName() - ); - - $fieldType = $collectionConfig->getConfig()->getType(); - - if ($fieldType->getName() !== static::COLLECTION_TYPE_NAME) { - $baseFieldType = $fieldType; - $resolved = false; - - while (null !== $fieldType && !$resolved) { - if ($fieldType->getName() !== static::COLLECTION_TYPE_NAME) { - $fieldType = $fieldType->getParent(); - } - } - - if (!$resolved) { - throw new \LogicException( - sprintf( - "The field '%s' is not a collection, it's a '%s'." . - "You can't use it with the function 'form_collection' in form '%s'", - $collection, - $baseFieldType->getName(), - $form->getName() - ) - ); - } - } - - return $collectionConfig; - } - - /** - * @param $params - * @param $content - * @param \Smarty_Internal_Template $template - * @param $repeat - * @return string - * - * Injects a collection field variables into the parser - */ - public function renderFormCollectionField($params, $content, \Smarty_Internal_Template $template, &$repeat) - { - if (!$repeat) { - return $content; - } - - $form = $this->getInstanceFromParams($params); - /** @var \Symfony\Component\Form\Form $row */ - $row = $this->getSymfonyFormFromParams($params, "row", true); - $field = $this->getParam($params, "field"); - - $formField = $this->retrieveField($field, $row->all(), $form->getName()); - - $formFieldConfig = $formField->getConfig(); - - $this->assignFieldValues( - $template, - $this->buildFieldName($formField), - $formField->getViewData(), - $formFieldConfig->getType(), - $this->findCollectionFieldFormView($form->getView(), $formField) - ); - - return ''; - } - - /** - * @param FormView $formView - * @param SymfonyForm $formField - * @return array - */ - protected function findCollectionFieldFormView(FormView $formView, SymfonyForm $formField) - { - $formFieldParentList = []; - - do { - // don't need to set first form name child - if (null === $formField->getParent()) { - break; - } - - $formFieldParentList[] = $formField->getConfig()->getName(); - - } while (null !== $formField = $formField->getParent()); - - $formFieldParentList = array_reverse($formFieldParentList); - - foreach ($formFieldParentList as $val) { - $formView = $formView->children[$val]; - } - - return $formView->vars; - } - - /** - * @param FormInterface $form - * @param array $tree - * @return string - * - * Tail recursive method that builds the field full name - */ - protected function buildFieldName(FormInterface $form, array &$tree = array()) - { - $config = $form->getConfig(); - $parent = $form->getParent(); - $hasParent = null !== $parent; - - if (null !== $proprietyPath = $config->getPropertyPath()) { - $name = (string)$proprietyPath; - } else { - $name = $config->getName(); - - if ($name === null) { - $name = ''; - } elseif ($name !== '' && $hasParent) { - $name = "[$name]"; - } - } - - array_unshift($tree, $name); - - if (!$hasParent) { - return implode("", $tree); - } - - return $this->buildFieldName($parent, $tree); - } - - /** - * @param $params - * @param \Smarty_Internal_Template $template - * @return mixed - * - * Counts collection entries - */ - public function formCollectionCount($params, \Smarty_Internal_Template $template) - { - /** - * Get parameters - */ - $form = $this->getInstanceFromParams($params); - $row = $this->getSymfonyFormFromParams($params, "row"); - $collection = $this->resolveCollection($this->getParam($params, "collection"), $form); - - $hash = $this->initializeCollection($form, $collection, $row); - - return $this->formCollectionCount[$hash]["total_count"]; - } - - /** - * @param BaseForm $form - * @param SymfonyForm $collection - * @param SymfonyForm $row - * @return string - * - * Initialize a collection into this class ( values stack, counting table ) - */ - protected function initializeCollection(BaseForm $form, SymfonyForm $collection, SymfonyForm $row = null) - { - $hash = $this->getFormStackHash($form, $collection); - - if (!isset($this->formCollectionStack[$hash])) { - $this->formCollectionStack[$hash] = $collection->all(); - } - - if (!isset($this->formCollectionCount[$hash])) { - $this->formCollectionCount[$hash] = [ - "count" => 0, - "limit" => 0, - "total_count" => count($this->formCollectionStack[$hash]), - ]; - } - - return $hash; - } - - /** - * @return array an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor("block", "form", $this, "generateForm"), - new SmartyPluginDescriptor("block", "form_field", $this, "renderFormField"), - new SmartyPluginDescriptor("block", "form_tagged_fields", $this, "renderTaggedFormFields"), - new SmartyPluginDescriptor("function", "form_hidden_fields", $this, "renderHiddenFormField"), - new SmartyPluginDescriptor("function", "form_enctype", $this, "formEnctype"), - new SmartyPluginDescriptor("block", "form_error", $this, "formError"), - new SmartyPluginDescriptor("function", "form_field_attributes", $this, "standardFormFieldAttributes"), - new SmartyPluginDescriptor("function", "render_form_field", $this, "standardFormFieldRendering"), - new SmartyPluginDescriptor("block", "custom_render_form_field", $this, "customFormFieldRendering"), - new SmartyPluginDescriptor("block", "form_collection", $this, "renderFormCollection"), - new SmartyPluginDescriptor("block", "form_collection_field", $this, "renderFormCollectionField"), - new SmartyPluginDescriptor("function", "form_collection_count", $this, "formCollectionCount"), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Format.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Format.php deleted file mode 100644 index 97220fde..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Format.php +++ /dev/null @@ -1,496 +0,0 @@ - - * @author Benjamin Perche - */ -class Format extends AbstractSmartyPlugin -{ - private static $dateKeys = ["day", "month", "year"]; - private static $timeKeys = ["hour", "minute", "second"]; - - /** @var RequestStack */ - protected $requestStack; - - public function __construct(RequestStack $requestStack) - { - $this->requestStack = $requestStack; - } - - /** - * return date in expected format - * - * available parameters : - * date => DateTime object (mandatory) - * format => expected format - * output => list of default system format. Values available : - * date => date format - * time => time format - * datetime => datetime format (default) - * - * ex : - * {format_date date=$dateTimeObject format="Y-m-d H:i:s"} will output the format with specific format - * {format_date date=$dateTimeObject format="l F j" locale="fr_FR"} will output the format with specific format (see date() function) - * {format_date date=$dateTimeObject output="date"} will output the date using the default date system format - * {format_date date=$dateTimeObject} will output with the default datetime system format - * - * @param array $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string - */ - public function formatDate($params, $template = null) - { - $date = $this->getParam($params, "date", false); - - if ($date === false) { - // Check if we have a timestamp - $timestamp = $this->getParam($params, "timestamp", false); - - if ($timestamp === false) { - // No timestamp => error - throw new SmartyPluginException("Either date or timestamp is a mandatory parameter in format_date function"); - } else { - $date = new \DateTime(); - $date->setTimestamp($timestamp); - } - } elseif (is_array($date)) { - $keys = array_keys($date); - - $isDate = $this->arrayContains(static::$dateKeys, $keys); - $isTime = $this->arrayContains(static::$timeKeys, $keys); - - // If this is not a date, fallback on today - // If this is not a time, fallback on midnight - $dateFormat = $isDate ? sprintf("%d-%d-%d", $date["year"], $date["month"], $date["day"]) : (new \DateTime())->format("Y-m-d"); - $timeFormat = $isTime ? sprintf("%d:%d:%d", $date["hour"], $date["minute"], $date["second"]) : "0:0:0"; - - $date = new \DateTime(sprintf("%s %s", $dateFormat, $timeFormat)); - } - - if (!($date instanceof \DateTime)) { - try { - $date = new \DateTime($date); - } catch (\Exception $e) { - return ""; - } - } - - $format = $this->getParam($params, "format", false); - - if ($format === false) { - $format = DateTimeFormat::getInstance($this->requestStack->getCurrentRequest())->getFormat($this->getParam($params, "output", null)); - } - - $locale = $this->getParam($params, 'locale', false); - - if (false === $locale) { - $value = $date->format($format); - } else { - $value = $this->formatDateWithLocale($date, $locale, $format); - } - - return $value; - } - - private function formatDateWithLocale(\DateTime $date, $locale, $format) - { - if (false === strpos($format, '%')) { - $formatter = new IntlDateFormatter($locale, IntlDateFormatter::FULL, IntlDateFormatter::FULL); - - $icuFormat = $this->convertDatePhpToIcu($format); - $formatter->setPattern($icuFormat); - - $localizedDate = $formatter->format($date); - } else { - // for backward compatibility - if (function_exists('setlocale')) { - // Save the current locale - $systemLocale = setlocale(LC_TIME, 0); - setlocale(LC_TIME, $locale); - $localizedDate = strftime($format, $date->getTimestamp()); - // Restore the locale - setlocale(LC_TIME, $systemLocale); - } else { - // setlocale() function not available => error - throw new SmartyPluginException("The setlocale() function is not available on your system."); - } - } - - return $localizedDate; - } - - /** - * - * display numbers in expected format - * - * available parameters : - * number => int or float number - * decimals => how many decimals format expected - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * - * ex : {format_number number="1246.12" decimals="1" dec_point="," thousands_sep=" "} will output "1 246,1" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatNumber($params, $template = null) - { - $number = $this->getParam($params, "number", false); - - if ($number === false || $number === '') { - return ""; - } - - return NumberFormat::getInstance($this->requestStack->getCurrentRequest())->format( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null) - ); - } - - /** - * - * display a amount in expected format - * - * available parameters : - * number => int or float number - * decimals => how many decimals format expected - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * symbol => Currency symbol - * - * ex : {format_money number="1246.12" decimals="1" dec_point="," thousands_sep=" " symbol="€"} will output "1 246,1 €" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatMoney($params, $template = null) - { - $number = $this->getParam($params, "number", false); - - if ($number === false || $number === '') { - return ""; - } - - if ($this->getParam($params, "symbol", null) === null) { - return MoneyFormat::getInstance($this->requestStack->getCurrentRequest())->formatByCurrency( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null), - $this->getParam($params, "currency_id", null) - ); - } - - return MoneyFormat::getInstance($this->requestStack->getCurrentRequest())->format( - $number, - $this->getParam($params, "decimals", null), - $this->getParam($params, "dec_point", null), - $this->getParam($params, "thousands_sep", null), - $this->getParam($params, "symbol", null) - ); - } - - - /** - * return two-dimensional arrays in string - * - * available parameters : - * values => array 2D ['key A' => ['value 1', 'value 2'], 'key B' => ['value 3', 'value 4']] - * separators => ['key value separator', 'value value separator', 'key key separator'] - * - * ex : - * {format_array_2d values=['Colors' => ['Green', 'Yellow', 'Red'], 'Material' => ['Wood']] separators=[' : ', ' / ', ' | ']} - * will output the format with specific format : "Colors : Green / Yellow / Red | Material : Wood" - * - * @param $params - * @return string - */ - public function formatTwoDimensionalArray($params) - { - $output = ''; - $values = $this->getParam($params, "values", null); - $separators = $this->getParam($params, "separators", [' : ', ' / ', ' | ']); - - if (!is_array($values)) { - return $output; - } - - foreach ($values as $key => $value) { - if ($output !== '') { - $output .= $separators[2]; - } - - $output .= $key . $separators[0]; - - if (!is_array($value)) { - $output .= $value; - continue; - } - - $output .= implode($separators[1], $value); - } - return $output; - } - - protected function arrayContains(array $expected, array $hayStack) - { - foreach ($expected as $value) { - if (!in_array($value, $hayStack)) { - return false; - } - } - - return true; - } - - /** - * This function comes from [Yii framework](http://www.yiiframework.com/) - * - * - * Converts a date format pattern from [php date() function format][] to [ICU format][]. - * - * The conversion is limited to date patterns that do not use escaped characters. - * Patterns like `jS \o\f F Y` which will result in a date like `1st of December 2014` may not be converted correctly - * because of the use of escaped characters. - * - * Pattern constructs that are not supported by the ICU format will be removed. - * - * [php date() function format]: http://php.net/manual/en/function.date.php - * [ICU format]: http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax - * - * @param string $pattern date format pattern in php date()-function format. - * @return string The converted date format pattern. - */ - protected function convertDatePhpToIcu($pattern) - { - // http://php.net/manual/en/function.date.php - return strtr( - $pattern, - [ - // Day - 'd' => 'dd', // Day of the month, 2 digits with leading zeros 01 to 31 - 'D' => 'eee', // A textual representation of a day, three letters Mon through Sun - 'j' => 'd', // Day of the month without leading zeros 1 to 31 - 'l' => 'eeee', // A full textual representation of the day of the week Sunday through Saturday - 'N' => 'e', // ISO-8601 numeric representation of the day of the week, 1 (for Monday) through 7 (for Sunday) - 'S' => '', // English ordinal suffix for the day of the month, 2 characters st, nd, rd or th. Works well with j - 'w' => '', // Numeric representation of the day of the week 0 (for Sunday) through 6 (for Saturday) - 'z' => 'D', // The day of the year (starting from 0) 0 through 365 - // Week - 'W' => 'w', // ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) Example: 42 (the 42nd week in the year) - // Month - 'F' => 'MMMM', // A full textual representation of a month, January through December - 'm' => 'MM', // Numeric representation of a month, with leading zeros 01 through 12 - 'M' => 'MMM', // A short textual representation of a month, three letters Jan through Dec - 'n' => 'M', // Numeric representation of a month, without leading zeros 1 through 12, not supported by ICU but we fallback to "with leading zero" - 't' => '', // Number of days in the given month 28 through 31 - // Year - 'L' => '', // Whether it's a leap year, 1 if it is a leap year, 0 otherwise. - 'o' => 'Y', // ISO-8601 year number. This has the same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. - 'Y' => 'yyyy', // A full numeric representation of a year, 4 digits Examples: 1999 or 2003 - 'y' => 'yy', // A two digit representation of a year Examples: 99 or 03 - // Time - 'a' => 'a', // Lowercase Ante meridiem and Post meridiem, am or pm - 'A' => 'a', // Uppercase Ante meridiem and Post meridiem, AM or PM, not supported by ICU but we fallback to lowercase - 'B' => '', // Swatch Internet time 000 through 999 - 'g' => 'h', // 12-hour format of an hour without leading zeros 1 through 12 - 'G' => 'H', // 24-hour format of an hour without leading zeros 0 to 23h - 'h' => 'hh', // 12-hour format of an hour with leading zeros, 01 to 12 h - 'H' => 'HH', // 24-hour format of an hour with leading zeros, 00 to 23 h - 'i' => 'mm', // Minutes with leading zeros 00 to 59 - 's' => 'ss', // Seconds, with leading zeros 00 through 59 - 'u' => '', // Microseconds. Example: 654321 - // Timezone - 'e' => 'VV', // Timezone identifier. Examples: UTC, GMT, Atlantic/Azores - 'I' => '', // Whether or not the date is in daylight saving time, 1 if Daylight Saving Time, 0 otherwise. - 'O' => 'xx', // Difference to Greenwich time (GMT) in hours, Example: +0200 - 'P' => 'xxx', // Difference to Greenwich time (GMT) with colon between hours and minutes, Example: +02:00 - 'T' => 'zzz', // Timezone abbreviation, Examples: EST, MDT ... - 'Z' => '', // Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. -43200 through 50400 - // Full Date/Time - 'c' => 'yyyy-MM-dd\'T\'HH:mm:ssxxx', // ISO 8601 date, e.g. 2004-02-12T15:19:21+00:00 - 'r' => 'eee, dd MMM yyyy HH:mm:ss xx', // RFC 2822 formatted date, Example: Thu, 21 Dec 2000 16:01:07 +0200 - 'U' => '', // Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) - ] - ); - } - - /** - * - * display an address in expected format - * - * available parameters : - * address => the id of the address to display - * order_address => the id of the order address to display - * from_country_id => the country id - * dec_point => separator for the decimal point - * thousands_sep => thousands separator - * symbol => Currency symbol - * - * ex : {format_money number="1246.12" decimals="1" dec_point="," thousands_sep=" " symbol="€"} will output "1 246,1 €" - * - * @param $params - * @param null $template - * @throws \TheliaSmarty\Template\Exception\SmartyPluginException - * @return string the expected number formatted - */ - public function formatAddress($params, $template = null) - { - $postal = filter_var( - $this->getParam($params, "postal", null), - FILTER_VALIDATE_BOOLEAN - ); - - $html = filter_var( - $this->getParam($params, "html", true), - FILTER_VALIDATE_BOOLEAN - ); - - $htmlTag = $this->getParam($params, "html_tag", "p"); - $originCountry = $this->getParam($params, "origin_country", null); - $locale = $this->getParam($params, "locale", $this->getSession()->getLang()->getLocale()); - - // extract html attributes - $htmlAttributes = []; - foreach ($params as $k => $v) { - if (strpos($k, 'html_') !== false && $k !== 'html_tag') { - $htmlAttributes[substr($k, 5)] = $v; - } - } - - // get address or order address - $address = null; - if (null !== $id = $this->getParam($params, "address", null)) { - if (null === $address = AddressQuery::create()->findPk($id)) { - return ''; - } - } elseif (null !== $id = $this->getParam($params, "order_address", null)) { - if (null === $address = OrderAddressQuery::create()->findPk($id)) { - return ''; - } - } else { - // try to parse arguments to build address - $address = $this->getAddressFormParams($params); - } - - if (null === $address) { - throw new SmartyPluginException( - "Either address, order_address or full list of address fields should be provided" - ); - } - - $addressFormat = AddressFormat::getInstance(); - if ($postal) { - if ($address instanceof Address) { - $formattedAddress = $addressFormat->postalLabelFormat($address, $locale, $originCountry); - } else { - $formattedAddress = $addressFormat->postalLabelFormatTheliaAddress($address, $locale, $originCountry); - } - } else { - if ($address instanceof Address) { - $formattedAddress = $addressFormat->format($address, $locale, $html, $htmlTag, $htmlAttributes); - } else { - $formattedAddress = $addressFormat->formatTheliaAddress($address, $locale, $html, $htmlTag, $htmlAttributes); - } - } - - return $formattedAddress; - } - - protected function getAddressFormParams($params) - { - // Check if there is arguments - $addressArgs = [ - 'country_code', - 'administrative_area', - 'locality', - 'dependent_locality', - 'postal_code', - 'sorting_code', - 'address_line1', - 'address_line2', - 'organization', - 'recipient', - 'locale' - ]; - $valid = false; - - $address = new Address(); - - foreach ($addressArgs as $arg) { - if (null !== $argVal = $this->getParam($params, $arg, null)) { - $valid = true; - $functionName = 'with' . Container::camelize($arg); - $address = $address->$functionName($argVal); - } - } - - if (false === $valid) { - return null; - } - - return $address; - } - - /** - * @return SmartyPluginDescriptor[] - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor("function", "format_date", $this, "formatDate"), - new SmartyPluginDescriptor("function", "format_number", $this, "formatNumber"), - new SmartyPluginDescriptor("function", "format_money", $this, "formatMoney"), - new SmartyPluginDescriptor("function", "format_array_2d", $this, "formatTwoDimensionalArray"), - new SmartyPluginDescriptor("function", "format_address", $this, "formatAddress"), - ); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Hook.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Hook.php deleted file mode 100644 index c9edadc2..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Hook.php +++ /dev/null @@ -1,476 +0,0 @@ - - */ -class Hook extends AbstractSmartyPlugin -{ - private $dispatcher; - - /** @var Translator */ - protected $translator; - - /** @var Module */ - protected $smartyPluginModule = null; - - /** @var array */ - protected $hookResults = array(); - - /** @var array */ - protected $varstack = array(); - - /** @var bool debug */ - protected $debug = false; - - public function __construct($debug, ContainerAwareEventDispatcher $dispatcher) - { - $this->debug = $debug; - $this->dispatcher = $dispatcher; - $this->translator = $dispatcher->getContainer()->get("thelia.translator"); - $this->hookResults = array(); - } - - /** - * Generates the content of the hook - * - * {hook name="hook_code" var1="value1" var2="value2" ... } - * - * This function create an event, feed it with the custom variables passed to the function (var1, var2, ...) and - * dispatch it to the hooks that respond to it. - * - * The name of the event is `hook.{context}.{hook_code}` where : - * * context : the id of the context of the smarty render : 1: frontoffice, 2: backoffice, 3: email, 4: pdf - * * hook_code : the code of the hook - * - * The event collects all the fragments of text rendered in each modules functions that listen to this event. - * Finally, this fragments are concatenated and injected in the template - * - * @param array $params the params passed in the smarty function - * @param \TheliaSmarty\Template\SmartyParser $smarty the smarty parser - * - * @return string the contents generated by modules - */ - public function processHookFunction($params, &$smarty) - { - $hookName = $this->getParam($params, 'name'); - $module = intval($this->getParam($params, 'module', 0)); - $moduleCode = $this->getParam($params, 'modulecode', ""); - - $type = $smarty->getTemplateDefinition()->getType(); - - $event = new HookRenderEvent($hookName, $params); - - $event->setArguments($this->getArgumentsFromParams($params)); - - $eventName = sprintf('hook.%s.%s', $type, $hookName); - - // this is a hook specific to a module - if (0 === $module && "" !== $moduleCode) { - if (null !== $mod = ModuleQuery::create()->findOneByCode($moduleCode)) { - $module = $mod->getId(); - } - } - if (0 !== $module) { - $eventName .= '.' . $module; - } - - $this->getDispatcher()->dispatch($eventName, $event); - - $content = trim($event->dump()); - - if ($this->debug && $smarty->getRequest()->get('SHOW_HOOK')) { - $content = self::showHook($hookName, $params) . $content; - } - - $this->hookResults[$hookName] = $content; - - // support for compatibility with module_include - if ($type === TemplateDefinition::BACK_OFFICE) { - $content .= $this->moduleIncludeCompat($params, $smarty); - } - - return $content; - } - - /** - * Call the plugin function module_include for backward compatibility. - * - * @param array $params the params passed in the smarty function - * @param \TheliaSmarty\Template\SmartyParser $smarty the smarty parser - * - * @return string the contents generated by module_include function - */ - protected function moduleIncludeCompat($params, &$smarty) - { - $plugin = $this->getSmartyPluginModule(); - $params = array( - "location" => $this->getParam($params, 'location', null), - "module" => $this->getParam($params, 'modulecode', null), - "countvar" => $this->getParam($params, 'countvar', null) - ); - - return $plugin->theliaModule($params, $smarty); - } - - /** - * get the smarty plugin Module - * - * @return Module the smarty plugin Module - */ - protected function getSmartyPluginModule() - { - if (null === $this->smartyPluginModule) { - $this->smartyPluginModule = $this->dispatcher->getContainer()->get("smarty.plugin.module"); - } - - return $this->smartyPluginModule; - } - - protected function showHook($hookName, $params) - { - $content = '
    ' . $hookName; - - foreach ($params as $name => $value) { - if ($name !== 'location' && $name !== "name") { - $type = ''; - if (is_object($value)) { - $value = get_class($value); - $type = 'object'; - } elseif (is_array($value)) { - $value = implode(',', $value); - $type = 'array'; - } elseif (is_int($value)) { - $type = 'float'; - } elseif (is_int($value)) { - $type = 'int'; - } elseif (is_string($value)) { - $value = (strlen($value) > 30) ? substr($value, 0, 30) . '...' : $value; - $type = 'string'; - } - - if ($type !== '') { - $type = '' . $type . ' '; - } - - $content .= '' . $name . ' = ' . $type . $value . ''; - } - } - - return $content . '
    '; - } - - /** - * Process the content of the hook block. - * - * {hookblock name="hook_code" var1="value1" var2="value2" ... } - * - * This function create an event, feed it with the custom variables passed to the function (var1, var2, ...) and - * dispatch it to the hooks that respond to it. - * - * The name of the event is `hook.{context}.{hook_code}` where : - * * context : the id of the context of the smarty render : 1: frontoffice, 2: backoffice, 3: email, 4: pdf - * * hook_code : the code of the hook - * - * The event collects all the fragments generated by modules that listen to this event and add it to a fragmentBag. - * This fragmentBag is not used directly. This is the forhook block that iterates over the fragmentBag to inject - * data in the template. - * - * @param array $params - * @param string $content - * @param \TheliaSmarty\Template\SmartyParser $smarty - * @param bool $repeat - * - * @return string the generated content - */ - public function processHookBlock($params, $content, $smarty, &$repeat) - { - $hookName = $this->getParam($params, 'name'); - $module = intval($this->getParam($params, 'module', 0)); - // explicit definition of variable that can be returned - $fields = preg_replace( - '|[^a-zA-Z0-9,\-_]|', - '', - $this->getParam($params, 'fields', '') - ); - $fields = ('' !== $fields) ? explode(",", $fields) : []; - - if (!$repeat) { - if ($this->debug && $smarty->getRequest()->get('SHOW_HOOK')) { - $content = self::showHook($hookName, $params) . $content; - } - - return $content; - } - - $type = $smarty->getTemplateDefinition()->getType(); - - $event = new HookRenderBlockEvent($hookName, $params, $fields); - - $event->setArguments($this->getArgumentsFromParams($params)); - - $eventName = sprintf('hook.%s.%s', $type, $hookName); - - // this is a hook specific to a module - if (0 !== $module) { - $eventName .= '.' . $module; - } - - $this->getDispatcher()->dispatch($eventName, $event); - - // save results so we can use it in forHook block - $this->hookResults[$hookName] = $event->get(); - } - - /** - * Process a {forhook rel="hookname"} ... {/forhook} - * - * The forhook iterates over the results return by a hookblock : - * - * {hookblock name="product.additional"} - * {forhook rel="product.additional"} - *
    - *

    {$title}

    - *

    {$content}

    - *
    - * {/forhook} - * {/hookblock} - * - * @param array $params - * @param string $content - * @param \TheliaSmarty\Template\SmartyParser $smarty - * @param bool $repeat - * - * @throws \InvalidArgumentException - * @return string the generated content - */ - public function processForHookBlock($params, $content, $smarty, &$repeat) - { - $rel = $this->getParam($params, 'rel'); - if (null == $rel) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in forHook arguments") - ); - } - - /** @var FragmentBag $fragments */ - $fragments = null; - - // first call - if ($content === null) { - if (!array_key_exists($rel, $this->hookResults)) { - throw new \InvalidArgumentException( - $this->translator->trans("Related hook name '%name' is not defined.", ['%name' => $rel]) - ); - } - - $fragments = $this->hookResults[$rel]; - $fragments->rewind(); - - if ($fragments->isEmpty()) { - $repeat = false; - } - } else { - $fragments = $this->hookResults[$rel]; - $fragments->next(); - } - - if ($fragments->valid()) { - /** @var Fragment $fragment */ - $fragment = $fragments->current(); - - // On first iteration, save variables that may be overwritten by this hook - if (!isset($this->varstack[$rel])) { - $saved_vars = array(); - - $varlist = $fragment->getVars(); - - foreach ($varlist as $var) { - $saved_vars[$var] = $smarty->getTemplateVars($var); - } - - $this->varstack[$rel] = $saved_vars; - } - - foreach ($fragment->getVarVal() as $var => $val) { - $smarty->assign($var, $val); - } - // continue iteration - $repeat = true; - } - - // end - if (!$repeat) { - // Restore previous variables values before terminating - if (isset($this->varstack[$rel])) { - foreach ($this->varstack[$rel] as $var => $value) { - $smarty->assign($var, $value); - } - - unset($this->varstack[$rel]); - } - } - - if ($content !== null) { - if ($fragments->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * Process {elsehook rel="hookname"} ... {/elsehook} block - * - * @param array $params hook parameters - * @param string $content hook text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * - * @return string the hook output - */ - public function elseHook( - $params, - $content, - /** @noinspection PhpUnusedParameterInspection */ $template, - &$repeat - ) { - // When encountering close tag, check if hook has results. - if ($repeat === false) { - return $this->checkEmptyHook($params) ? $content : ''; - } - - return ''; - } - - /** - * Process {ifhook rel="hookname"} ... {/ifhook} block - * - * @param array $params hook parameters - * @param string $content hook text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * - * @return string the hook output - */ - public function ifHook($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - // When encountering close tag, check if hook has results. - if ($repeat === false) { - return $this->checkEmptyHook($params) ? '' : $content; - } - - return ''; - } - - /** - * Check if a hook has returned results. The hook should have been executed before, or an - * InvalidArgumentException is thrown - * - * @param array $params - * - * @return boolean true if the hook is empty - * @throws \InvalidArgumentException - */ - protected function checkEmptyHook($params) - { - $hookName = $this->getParam($params, 'rel'); - - if (null == $hookName) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in ifhook/elsehook arguments") - ); - } - - if (!isset($this->hookResults[$hookName])) { - throw new \InvalidArgumentException( - $this->translator->trans("Related hook name '%name' is not defined.", ['%name' => $hookName]) - ); - } - - return (is_string($this->hookResults[$hookName]) && '' === $this->hookResults[$hookName] - || !is_string($this->hookResults[$hookName]) && $this->hookResults[$hookName]->isEmpty() - ); - } - - /** - * Clean the params of the params passed to the hook function or block to feed the arguments of the event - * with relevant arguments. - * - * @param $params - * - * @return array - */ - protected function getArgumentsFromParams($params) - { - $args = array(); - $excludes = array("name", "before", "separator", "after", "fields"); - - if (is_array($params)) { - foreach ($params as $key => $value) { - if (!in_array($key, $excludes)) { - $args[$key] = $value; - } - } - } - - return $args; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'hook', $this, 'processHookFunction'), - new SmartyPluginDescriptor('block', 'hookblock', $this, 'processHookBlock'), - new SmartyPluginDescriptor('block', 'forhook', $this, 'processForHookBlock'), - new SmartyPluginDescriptor('block', 'elsehook', $this, 'elseHook'), - new SmartyPluginDescriptor('block', 'ifhook', $this, 'ifHook'), - ); - } - - /** - * Return the event dispatcher, - * - * @return \Symfony\Component\EventDispatcher\EventDispatcher - */ - public function getDispatcher() - { - return $this->dispatcher; - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Module.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Module.php deleted file mode 100644 index b0c8123a..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Module.php +++ /dev/null @@ -1,104 +0,0 @@ -debug = $debug; - $this->requestStack = $requestStack; - } - /** - * Process theliaModule template inclusion function - * - * This function accepts two parameters: - * - * - location : this is the location in the admin template. Example: folder-edit'. The function will search for - * AdminIncludes/.html file, and fetch it as a Smarty template. - * - countvar : this is the name of a template variable where the number of found modules includes will be assigned. - * - * @param array $params - * @param \Smarty_Internal_Template $template - * @internal param \Thelia\Core\Template\Smarty\Plugins\unknown $smarty - * - * @return string - */ - public function theliaModule($params, \Smarty_Internal_Template $template) - { - $content = null; - $count = 0; - if (false !== $location = $this->getParam($params, 'location', false)) { - if ($this->debug === true && $this->requestStack->getCurrentRequest()->get('SHOW_INCLUDE')) { - echo sprintf('
    %s
    ', $location); - } - - $moduleLimit = $this->getParam($params, 'module', null); - - $modules = ModuleQuery::getActivated(); - - /** @var \Thelia\Model\Module $module */ - foreach ($modules as $module) { - if (null !== $moduleLimit && $moduleLimit != $module->getCode()) { - continue; - } - - $file = $module->getAbsoluteAdminIncludesPath() . DS . $location . '.html'; - - if (file_exists($file)) { - $output = trim(file_get_contents($file)); - - if (! empty($output)) { - $content .= $output; - - $count++; - } - } - } - } - - if (false !== $countvarname = $this->getParam($params, 'countvar', false)) { - $template->assign($countvarname, $count); - } - - if (! empty($content)) { - return $template->fetch(sprintf("string:%s", $content)); - } - - return ""; - } - - /** - * Define the various smarty plugins hendled by this class - * - * @return an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'module_include', $this, 'theliaModule'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Render.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Render.php deleted file mode 100644 index 2f7abd3d..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Render.php +++ /dev/null @@ -1,167 +0,0 @@ - - */ -class Render extends AbstractSmartyPlugin -{ - /** @var ControllerResolver */ - protected $controllerResolver; - - /** @var RequestStack */ - protected $requestStack; - - /** @var Container */ - protected $container; - - /** - * @param ControllerResolver $controllerResolver - * @param RequestStack $requestStack - * @param Container $container - */ - public function __construct(ControllerResolver $controllerResolver, RequestStack $requestStack, Container $container) - { - $this->controllerResolver = $controllerResolver; - $this->requestStack = $requestStack; - $this->container = $container; - } - - /** - * @param $params - * @return mixed|string - * @throws SmartyPluginException - */ - public function processRender($params) - { - if (null === $params["action"]) { - throw new SmartyPluginException( - "You must declare the 'action' parameter in the 'render' smarty function" - ); - } - - $request = $this->prepareRequest($params); - - $this->requestStack->push($request); - - $controller = $this->controllerResolver->getController($request); - $controllerParameters = $this->controllerResolver->getArguments($request, $controller); - - $response = call_user_func_array($controller, $controllerParameters); - - $this->requestStack->pop(); - - if ($response instanceof Response) { - return $response->getContent(); - } - - return $response; - } - - protected function prepareRequest(array $params) - { - // Get action - $action = $this->popParameter($params, "action"); - - // Then get and filter query, request and method - $query = $this->popParameter($params, "query"); - $query = $this->filterArrayStrParam($query); - $request = $this->popParameter($params, "request"); - $request = $this->filterArrayStrParam($request); - $method = strtoupper($this->popParameter($params, "method", "GET")); - - // Then build the request - $requestObject = clone $this->requestStack->getCurrentRequest(); - $requestObject->query = new ParameterBag($query); - $requestObject->request = new ParameterBag($request); - $requestObject->attributes = new ParameterBag(["_controller" => $action]); - - // Apply the method - if (!empty($request) && "GET" === $method) { - $requestObject->setMethod("POST"); - } else { - $requestObject->setMethod($method); - } - - // Then all the attribute parameters - foreach ($params as $key => $attribute) { - $requestObject->attributes->set($key, $attribute); - } - - return $requestObject; - } - - /** - * @param $param - * @return array - * - * If $param is an array, return it. - * Else parser it to translate a=b&c=d&e[]=f&g[h]=i to - * ["a"=>"b","c"=>"d","e"=>["f"],"g"=>["h"=>"i"] - */ - protected function filterArrayStrParam($param) - { - if (is_array($param)) { - return $param; - } - - parse_str($param, $param); - - if (false === $param) { - return []; - } - - return $param; - } - - /** - * @param array $params - * @param $name - * @param null $default - * @return mixed - * - * Get a parameter then unset it - */ - protected function popParameter(array $params, $name, $default = null) - { - $param = $this->getParam($params, $name, $default); - - if (array_key_exists($name, $params)) { - unset($params[$name]); - } - - return $param; - } - - /** - * @return SmartyPluginDescriptor[] an array of SmartyPluginDescriptor - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'render', $this, 'processRender'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Security.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Security.php deleted file mode 100644 index bd14bfdc..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Security.php +++ /dev/null @@ -1,146 +0,0 @@ -securityContext = $securityContext; - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - } - - /** - * Process security check function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - * @throws \Thelia\Core\Security\Exception\AuthenticationException - * @throws AuthenticationException - * @throws AuthorizationException - */ - public function checkAuthFunction($params, &$smarty) - { - $roles = $this->explode($this->getParam($params, 'role')); - $resources = $this->explode($this->getParam($params, 'resource')); - $modules = $this->explode($this->getParam($params, 'module')); - $accesses = $this->explode($this->getParam($params, 'access')); - - if (! $this->securityContext->isGranted($roles, $resources, $modules, $accesses)) { - if (null === $this->securityContext->checkRole($roles)) { - // The current user is not logged-in. - $ex = new AuthenticationException( - sprintf( - "User not granted for roles '%s', to access resources '%s' with %s.", - implode(',', $roles), - implode(',', $resources), - implode(',', $accesses) - ) - ); - - $loginTpl = $this->getParam($params, 'login_tpl'); - - if (null != $loginTpl) { - $ex->setLoginTemplate($loginTpl); - } - } else { - // We have a logged-in user, who do not have the proper permission. Issue an AuthorizationException. - $ex = new AuthorizationException( - sprintf( - "User not granted for roles '%s', to access resources '%s' with %s.", - implode(',', $roles), - implode(',', $resources), - implode(',', $accesses) - ) - ); - } - - throw $ex; - } - - return ''; - } - - public function checkCartNotEmptyFunction($params, &$smarty) - { - $cart = $this->getSession()->getSessionCart($this->dispatcher); - if ($cart===null || $cart->countCartItems() == 0) { - throw new OrderException('Cart must not be empty', OrderException::CART_EMPTY, array('empty' => 1)); - } - - return ""; - } - - public function checkValidDeliveryFunction($params, &$smarty) - { - $order = $this->getSession()->getOrder(); - /* Does address and module still exists ? We assume address owner can't change neither module type */ - if ($order !== null) { - $checkAddress = AddressQuery::create()->findPk($order->getChoosenDeliveryAddress()); - $checkModule = ModuleQuery::create()->findPk($order->getDeliveryModuleId()); - } else { - $checkAddress = $checkModule = null; - } - - if (null === $order || null == $checkAddress || null === $checkModule) { - throw new OrderException('Delivery must be defined', OrderException::UNDEFINED_DELIVERY, array('missing' => 1)); - } - - return ""; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'check_auth', $this, 'checkAuthFunction'), - new SmartyPluginDescriptor('function', 'check_cart_not_empty', $this, 'checkCartNotEmptyFunction'), - new SmartyPluginDescriptor('function', 'check_valid_delivery', $this, 'checkValidDeliveryFunction'), - ); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->requestStack->getCurrentRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php b/local/modules/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php deleted file mode 100644 index f2bb5ad8..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/TheliaLoop.php +++ /dev/null @@ -1,463 +0,0 @@ -container = $container; - $this->request = $container->get('request_stack')->getCurrentRequest(); - $this->dispatcher = $container->get('event_dispatcher'); - $this->securityContext = $container->get('thelia.securityContext'); - $this->translator = $container->get("thelia.translator"); - } - - /** - * @param string $loopName - * @return PropelModelPager - * @throws \InvalidArgumentException if no pagination was found for loop - */ - public static function getPagination($loopName) - { - if (array_key_exists($loopName, self::$pagination)) { - return self::$pagination[$loopName]; - } else { - throw new \InvalidArgumentException( - Translator::getInstance()->trans("No pagination currently defined for loop name '%name'", ['%name' => $loopName ]) - ); - } - } - - /** - * Process the count function: executes a loop and return the number of items found - * - * @param array $params parameters array - * @param \Smarty_Internal_Template $template - * - * @return int the item count - * @throws \InvalidArgumentException if a parameter is missing - * - */ - public function theliaCount($params, /** @noinspection PhpUnusedParameterInspection */ $template) - { - $type = $this->getParam($params, 'type'); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in {count} loop arguments") - ); - } - - $loop = $this->createLoopInstance($params); - - return $loop->count(); - } - - /** - * Process {loop name="loop name" type="loop type" ... } ... {/loop} block - * - * @param array $params - * @param string $content - * @param \Smarty_Internal_Template $template - * @param boolean $repeat - * - * @throws \InvalidArgumentException - * - * @return void|string - */ - public function theliaLoop($params, $content, $template, &$repeat) - { - $name = $this->getParam($params, 'name'); - - if (null == $name) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'name' parameter in loop arguments") - ); - } - - $type = $this->getParam($params, 'type'); - - if (null == $type) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'type' parameter in loop arguments") - ); - } - - if ($content === null) { - // Check if a loop with the same name exists in the current scope, and abort if it's the case. - if (array_key_exists($name, $this->varstack)) { - throw new \InvalidArgumentException( - $this->translator->trans("A loop named '%name' already exists in the current scope.", ['%name' => $name]) - ); - } - - $loop = $this->createLoopInstance($params); - - self::$pagination[$name] = null; - - // We have to clone the result, as exec() returns a cached LoopResult object, which may cause side effects - // if loops with the same argument set are nested (see https://github.com/thelia/thelia/issues/2213) - $loopResults = clone($loop->exec(self::$pagination[$name])); - - $loopResults->rewind(); - - $this->loopstack[$name] = $loopResults; - - // No results ? The loop is terminated, do not evaluate loop text. - if ($loopResults->isEmpty()) { - $repeat = false; - } - } else { - $loopResults = $this->loopstack[$name]; - - $loopResults->next(); - } - - if ($loopResults->valid()) { - $loopResultRow = $loopResults->current(); - - // On first iteration, save variables that may be overwritten by this loop - if (! isset($this->varstack[$name])) { - $saved_vars = array(); - - $varlist = $loopResultRow->getVars(); - - foreach ($varlist as $var) { - $saved_vars[$var] = $template->getTemplateVars($var); - } - - $this->varstack[$name] = $saved_vars; - } - - foreach ($loopResultRow->getVarVal() as $var => $val) { - $template->assign($var, $val); - } - - $repeat = true; - } - - // Loop is terminated. Cleanup. - if (! $repeat) { - // Restore previous variables values before terminating - if (isset($this->varstack[$name])) { - foreach ($this->varstack[$name] as $var => $value) { - $template->assign($var, $value); - } - - unset($this->varstack[$name]); - } - } - - if ($content !== null) { - if ($loopResults->isEmpty()) { - $content = ""; - } - - return $content; - } - - return ''; - } - - /** - * Process {elseloop rel="loopname"} ... {/elseloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - */ - public function theliaElseloop($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - //Block the smarty interpretation in the elseloop - if ($content === null) { - if (! $this->checkEmptyLoop($params)) { - $repeat = false; - - return ''; - } - } - - return $content; - } - - /** - * Process {ifloop rel="loopname"} ... {/ifloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - */ - public function theliaIfLoop($params, $content, /** @noinspection PhpUnusedParameterInspection */ $template, &$repeat) - { - // When encountering close tag, check if loop has results. - if ($repeat === false) { - return $this->checkEmptyLoop($params) ? '' : $content; - } - - return ''; - } - - /** - * Process {pageloop rel="loopname"} ... {/pageloop} block - * - * @param array $params loop parameters - * @param string $content loop text content - * @param \Smarty_Internal_Template $template the Smarty object - * @param boolean $repeat repeat indicator (see Smarty doc.) - * @return string the loop output - * @throws \InvalidArgumentException - */ - public function theliaPageLoop($params, $content, $template, &$repeat) - { - $loopName = $this->getParam($params, 'rel'); - - if (null == $loopName) { - throw new \InvalidArgumentException($this->translator->trans("Missing 'rel' parameter in page loop")); - } - - // Find pagination - $pagination = self::getPagination($loopName); - - if ($pagination === null || $pagination->getNbResults() == 0) { - // No need to paginate - return ''; - } - - $startPage = intval($this->getParam($params, 'start-page', 1)); - $displayedPageCount = intval($this->getParam($params, 'limit', 10)); - - if (intval($displayedPageCount) == 0) { - $displayedPageCount = PHP_INT_MAX; - } - - $totalPageCount = $pagination->getLastPage(); - - if ($content === null) { - // The current page - $currentPage = $pagination->getPage(); - - // Get the start page. - if ($totalPageCount > $displayedPageCount) { - $startPage = $currentPage - round($displayedPageCount / 2); - - if ($startPage <= 0) { - $startPage = 1; - } - } - - // This is the iterative page number, the one we're going to increment in this loop - $iterationPage = $startPage; - - // The last displayed page number - $endPage = $startPage + $displayedPageCount - 1; - - if ($endPage > $totalPageCount) { - $endPage = $totalPageCount; - } - - // The first displayed page number - $template->assign('START', $startPage); - // The previous page number - $template->assign('PREV', $currentPage > 1 ? $currentPage-1 : $currentPage); - // The next page number - $template->assign('NEXT', $currentPage < $totalPageCount ? $currentPage+1 : $totalPageCount); - // The last displayed page number - $template->assign('END', $endPage); - // The overall last page - $template->assign('LAST', $totalPageCount); - } else { - $iterationPage = $template->getTemplateVars('PAGE'); - - $iterationPage++; - } - - if ($iterationPage <= $template->getTemplateVars('END')) { - // The iterative page number - $template->assign('PAGE', $iterationPage); - - // The overall current page number - $template->assign('CURRENT', $pagination->getPage()); - - $repeat = true; - } - - if ($content !== null) { - return $content; - } - - return ''; - } - - /** - * Check if a loop has returned results. The loop shoud have been executed before, or an - * InvalidArgumentException is thrown - * - * @param array $params - * - * @return boolean true if the loop is empty - * @throws \InvalidArgumentException - */ - protected function checkEmptyLoop($params) - { - $loopName = $this->getParam($params, 'rel'); - - if (null == $loopName) { - throw new \InvalidArgumentException( - $this->translator->trans("Missing 'rel' parameter in ifloop/elseloop arguments") - ); - } - - if (! isset($this->loopstack[$loopName])) { - throw new \InvalidArgumentException( - $this->translator->trans("Related loop name '%name'' is not defined.", ['%name' => $loopName]) - ); - } - - return $this->loopstack[$loopName]->isEmpty(); - } - - /** - * @param $smartyParams - * - * @return BaseLoop - * @throws \Thelia\Core\Template\Element\Exception\InvalidElementException - * @throws \Thelia\Core\Template\Element\Exception\ElementNotFoundException - */ - protected function createLoopInstance($smartyParams) - { - $type = strtolower($smartyParams['type']); - - if (! isset($this->loopDefinition[$type])) { - throw new ElementNotFoundException( - $this->translator->trans("Loop type '%type' is not defined.", ['%type' => $type]) - ); - } - - $class = new \ReflectionClass($this->loopDefinition[$type]); - - if ($class->isSubclassOf("Thelia\Core\Template\Element\BaseLoop") === false) { - throw new InvalidElementException( - $this->translator->trans("'%type' loop class should extends Thelia\Core\Template\Element\BaseLoop", ['%type' => $type]) - ); - } - - $loop = $class->newInstance( - $this->container - ); - - $loop->initializeArgs($smartyParams); - - return $loop; - } - - /** - * - * Injects an associative array containing information for loop execution - * - * key is loop name - * value is the class implementing/extending base loop classes - * - * ex : - * - * $loop = array( - * "product" => "Thelia\Loop\Product", - * "category" => "Thelia\Loop\Category", - * "myLoop" => "My\Own\Loop" - * ); - * - * @param array $loopDefinition - * @throws \InvalidArgumentException if loop name already exists - */ - public function setLoopList(array $loopDefinition) - { - foreach ($loopDefinition as $name => $className) { - if (array_key_exists($name, $this->loopDefinition)) { - throw new \InvalidArgumentException( - $this->translator->trans("The loop name '%name' is already defined in %className class", [ - '%name' => $name, - '%className' => $className - ]) - ); - } - - $this->loopDefinition[$name] = $className; - } - } - - /** - * Defines the various smarty plugins hendled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - - new SmartyPluginDescriptor('function', 'count', $this, 'theliaCount'), - new SmartyPluginDescriptor('block', 'loop', $this, 'theliaLoop'), - new SmartyPluginDescriptor('block', 'elseloop', $this, 'theliaElseloop'), - new SmartyPluginDescriptor('block', 'ifloop', $this, 'theliaIfLoop'), - new SmartyPluginDescriptor('block', 'pageloop', $this, 'theliaPageLoop'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Translation.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Translation.php deleted file mode 100644 index 6eb83652..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Translation.php +++ /dev/null @@ -1,125 +0,0 @@ -translator = $translator; - } - - /** - * Set the default translation domain - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function setDefaultTranslationDomain($params, &$smarty) - { - $this->defaultTranslationDomain = $this->getParam($params, 'domain'); - } - - /** - * Set the default locale - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function setDefaultLocale($params, &$smarty) - { - $this->defaultLocale = $this->getParam($params, 'locale'); - } - - /** - * Process translate function - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - * @return string - */ - public function translate($params, &$smarty) - { - // All parameters other than 'l' and 'd' and 'js' are supposed to be variables. Build an array of var => value pairs - // and pass it to the translator - $vars = array(); - - foreach ($params as $name => $value) { - if (!in_array($name, $this->protectedParams)) { - $vars["%$name"] = $value; - } - } - - $str = $this->translator->trans( - $this->getParam($params, 'l'), - $vars, - $this->getParam($params, 'd', $this->defaultTranslationDomain), - $this->getParam($params, 'locale', $this->defaultLocale), - $this->getBoolean($this->getParam($params, 'default', true), true), - $this->getBoolean($this->getParam($params, 'fallback', true), true) - ); - - if ($this->getParam($params, 'js', 0)) { - $str = preg_replace("/(['\"])/", "\\\\$1", $str); - } - - return $str; - } - - protected function getBoolean($value, $default = false) - { - $val = filter_var($value, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE); - if (null === $val) { - $val = $default; - } - - return $val; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return \TheliaSmarty\Template\SmartyPluginDescriptor[] an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'intl', $this, 'translate'), - new SmartyPluginDescriptor('function', 'default_translation_domain', $this, 'setDefaultTranslationDomain'), - new SmartyPluginDescriptor('function', 'default_locale', $this, 'setDefaultLocale'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/Type.php b/local/modules/modules/TheliaSmarty/Template/Plugins/Type.php deleted file mode 100644 index 9140a13d..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/Type.php +++ /dev/null @@ -1,47 +0,0 @@ -isValid($value)) { - return ''; - } - - return $value; - } - - /** - * Define the various smarty plugins handled by this class - * - * @return an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('modifier', 'assertType', $this, 'assertTypeModifier'), - ); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php b/local/modules/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php deleted file mode 100644 index 988a7202..00000000 --- a/local/modules/modules/TheliaSmarty/Template/Plugins/UrlGenerator.php +++ /dev/null @@ -1,395 +0,0 @@ -requestStack = $requestStack; - $this->tokenProvider = $tokenProvider; - $this->container = $container; - } - - /** - * Process url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateUrlFunction($params, &$smarty) - { - // the path to process - $current = $this->getParam($params, 'current', false); - $path = $this->getParam($params, 'path', null); - // Do not invoke index.php in URL (get a static file in web space - $file = $this->getParam($params, 'file', null); - $routeId = $this->getParam($params, 'route_id', null); - // select default router - if ($this->getRequest()->fromAdmin()) { - $defaultRouter = 'admin'; - } elseif ($this->getRequest()->fromFront()) { - $defaultRouter = 'front'; - } else { - $defaultRouter = null; - } - $routerId = $this->getParam($params, 'router', $defaultRouter); - - if ($current) { - $path = $this->getRequest()->getPathInfo(); - unset($params["current"]); // Delete the current param, so it isn't included in the url - - // build the query variables - $params = array_merge( - $this->getRequest()->query->all(), - $params - ); - } - - if ($routeId !== null && $routerId !== null) { - $routerId = 'router.' . $routerId; - - // test if the router exists - if (!$this->container->has($routerId)) { - throw new \InvalidArgumentException( - 'The router "' . $routerId . '" not found.' - ); - } - // get url by router and id - /** @var Router $router */ - $router = $this->container->get($routerId); - - $url = $router->generate( - $routeId, - $this->getArgsFromParam($params, ['route_id', 'router']), - Router::ABSOLUTE_URL - ); - } else { - if ($file !== null) { - $path = $file; - $mode = URL::PATH_TO_FILE; - } elseif ($path !== null) { - $mode = URL::WITH_INDEX_PAGE; - } else { - throw new \InvalidArgumentException( - "Please specify either 'path', 'file' or router and route_id on parameters in {url} function." - ); - } - - $excludeParams = $this->resolvePath($params, $path, $smarty); - - $url = URL::getInstance()->absoluteUrl( - $path, - $this->getArgsFromParam($params, array_merge(['noamp', 'path', 'file', 'target'], $excludeParams)), - $mode - ); - - $request = $this->getRequest(); - $requestedLangCodeOrLocale = $params["lang"]; - $view = $request->attributes->get('_view', null); - $viewId = $view === null ? null : $request->query->get($view . '_id', null); - - if (null !== $requestedLangCodeOrLocale) { - if (strlen($requestedLangCodeOrLocale) > 2) { - $lang = LangQuery::create()->findOneByLocale($requestedLangCodeOrLocale); - } else { - $lang = LangQuery::create()->findOneByCode($requestedLangCodeOrLocale); - } - - if (ConfigQuery::isMultiDomainActivated()) { - $urlRewrite = RewritingUrlQuery::create() - ->filterByView($view) - ->filterByViewId($viewId) - ->filterByViewLocale($lang->getLocale()) - ->findOneByRedirected(null) - ; - - $path = ''; - if (null != $urlRewrite) { - $path = "/".$urlRewrite->getUrl(); - } - $url = rtrim($lang->getUrl(), "/").$request->getBaseUrl().$path; - } - - } - } - return $this->applyNoAmpAndTarget($params, $url); - } - - /** - * - * find placeholders in the path and replace them by the given value - * - * @param $params - * @param $path - * @param $smarty - * @return array the placeholders found - */ - protected function resolvePath(&$params, &$path, $smarty) - { - $placeholder = []; - - foreach ($params as $key => $value) { - if (false !== strpos($path, "%$key")) { - $placeholder["%$key"] = SmartyParser::theliaEscape($value, $smarty); - unset($params[$key]); - } - } - - $path = strtr($path, $placeholder); - $keys = array_keys($placeholder); - array_walk($keys, function(&$item, $key) { - $item = str_replace('%', '', $item); - }); - - return $keys; - } - - /** - * Process view url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateFrontViewUrlFunction($params, &$smarty) - { - return $this->generateViewUrlFunction($params, false); - } - - /** - * Process administration view url generator function - * - * @param array $params - * @param \Smarty $smarty - * @return string no text is returned. - */ - public function generateAdminViewUrlFunction($params, &$smarty) - { - return $this->generateViewUrlFunction($params, true); - } - - - public function navigateToUrlFunction($params, &$smarty) - { - $to = $this->getParam($params, 'to', null); - - $toMethod = $this->getNavigateToMethod($to); - - $url = URL::getInstance()->absoluteUrl( - $this->$toMethod(), - $this->getArgsFromParam($params, ['noamp', 'to', 'target']), - URL::WITH_INDEX_PAGE - ); - - return $this->applyNoAmpAndTarget($params, $url); - } - - protected function generateViewUrlFunction($params, $forAdmin) - { - // the view name (without .html) - $view = $this->getParam($params, 'view'); - - $args = $this->getArgsFromParam($params, array('view', 'noamp', 'target')); - - $url = $forAdmin ? URL::getInstance()->adminViewUrl($view, $args) : URL::getInstance()->viewUrl($view, $args); - - return $this->applyNoAmpAndTarget($params, $url); - } - - /** - * Get URL parameters array from parameters. - * - * @param array $params Smarty function params - * @param array $exclude Smarty function exclude params - * @return array the parameters array (either emply, of valued) - */ - private function getArgsFromParam($params, $exclude = array()) - { - $pairs = array(); - - foreach ($params as $name => $value) { - if (in_array($name, $exclude)) { - continue; - } - - $pairs[$name] = $value; - } - - return $pairs; - } - - public function generateUrlWithToken($params, &$smarty) - { - /** - * Compute the url - */ - $url = $this->generateUrlFunction($params, $smarty); - - $urlTokenParam = $this->getParam($params, "url_param", "_token"); - - /** - * Add the token - */ - $token = $this->tokenProvider->assignToken(); - - $newUrl = URL::getInstance()->absoluteUrl( - $url, - [ - $urlTokenParam => $token - ] - ); - - return $this->applyNoAmpAndTarget($params, $newUrl); - } - - protected function applyNoAmpAndTarget($params, $url) - { - $noamp = $this->getParam($params, 'noamp', null); // Do not change & in & - $target = $this->getParam($params, 'target', null); - - if (!$noamp) { - $url = str_replace('&', '&', $url); - } - - if ($target != null) { - $url .= '#'.$target; - } - - return $url; - } - - /** - * Set the _previous_url request attribute, to define the previous URL, or - * prevent saving the current URL as the previous one. - * - * @param array $params - * @param \Smarty_Internal_Template $smarty - */ - public function setPreviousUrlFunction($params, &$smarty) - { - $ignore_current = $this->getParam($params, 'ignore_current', false); - - if ($ignore_current !== false) { - $this->getRequest()->attributes->set('_previous_url', 'dont-save'); - } else { - $this->getRequest()->attributes->set('_previous_url', $this->generateUrlFunction($params, $smarty)); - } - } - - /** - * Define the various smarty plugins handled by this class - * - * @return array an array of smarty plugin descriptors - */ - public function getPluginDescriptors() - { - return array( - new SmartyPluginDescriptor('function', 'url', $this, 'generateUrlFunction'), - new SmartyPluginDescriptor('function', 'token_url', $this, 'generateUrlWithToken'), - new SmartyPluginDescriptor('function', 'viewurl', $this, 'generateFrontViewUrlFunction'), - new SmartyPluginDescriptor('function', 'admin_viewurl', $this, 'generateAdminViewUrlFunction'), - new SmartyPluginDescriptor('function', 'navigate', $this, 'navigateToUrlFunction'), - new SmartyPluginDescriptor('function', 'set_previous_url', $this, 'setPreviousUrlFunction') - ); - } - - /** - * @return array sur le format "to_value" => "method_name" - */ - protected function getNavigateToValues() - { - return array( - "current" => "getCurrentUrl", - "previous" => "getPreviousUrl", - "index" => "getIndexUrl", - ); - } - - protected function getNavigateToMethod($to) - { - if ($to === null) { - throw new \InvalidArgumentException("Missing 'to' parameter in `navigate` substitution."); - } - - $navigateToValues = $this->getNavigateToValues(); - - if (!array_key_exists($to, $navigateToValues)) { - throw new \InvalidArgumentException( - sprintf("Incorrect value `%s` for parameter `to` in `navigate` substitution.", $to) - ); - } - - return $navigateToValues[$to]; - } - - protected function getCurrentUrl() - { - return $this->getRequest()->getUri(); - } - - protected function getPreviousUrl() - { - return URL::getInstance()->absoluteUrl($this->getSession()->getReturnToUrl()); - } - - protected function getIndexUrl() - { - return URL::getInstance()->getIndexPage(); - } - - /** - * @return Request - */ - protected function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * @return Session - */ - protected function getSession() - { - return $this->getRequest()->getSession(); - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/SmartyHelper.php b/local/modules/modules/TheliaSmarty/Template/SmartyHelper.php deleted file mode 100644 index 2bed38f8..00000000 --- a/local/modules/modules/TheliaSmarty/Template/SmartyHelper.php +++ /dev/null @@ -1,178 +0,0 @@ - - */ -class SmartyHelper implements ParserHelperInterface -{ - /** - * Parse a string and get all smarty function and block with theirs arguments. - * some smarty functions are not supported : if, for, ... - * - * - * - * @param string $content the template content - * @param array $functions the only functions we want to parse - * - * @return array array of functions with 2 index name and attributes an array of name, value - */ - public function getFunctionsDefinition($content, array $functions = array()) - { - $strlen = strlen($content); - - // init - $buffer = ''; - $name = ''; - $attributeName = ''; - $waitfor = ''; - - $inFunction = false; - $hasName = false; - $inAttribute = false; - $inInnerFunction = false; - - $ldelim = '{'; - $rdelim = '}'; - $skipFunctions = array("if", "for"); - $skipCharacters = array("\t", "\r", "\n"); - - $store = array(); - $attributes = array(); - - for ($pos = 0; $pos < $strlen; $pos++) { - $char = $content[$pos]; - - if (in_array($char, $skipCharacters)) { - continue; - } - - if (!$inFunction) { - if ($char === $ldelim) { - $inFunction = true; - $inInnerFunction = false; - } - continue; - } - - // get function name - if (!$hasName) { - if ($char === " " || $char === $rdelim) { - $name = $buffer; - // we catch this name ? - $hasName = $inFunction = (!in_array($name, $skipFunctions) && (0 === count($functions) || in_array($name, $functions))); - $buffer = ""; - continue; - } else { - // skip { - if (in_array($char, array("/", "$", "#", "'", "\""))) { - $inFunction = false; - } else { - $buffer .= $char; - } - continue; - } - } - - // inner Function ? - if ($char === $ldelim) { - $inInnerFunction = true; - $buffer .= $char; - continue; - } - - // end ? - if ($char === $rdelim) { - if ($inInnerFunction) { - $inInnerFunction = false; - $buffer .= $char; - } else { - if ($inAttribute) { - if ("" === $attributeName) { - $attributes[trim($buffer)] = ""; - } else { - $attributes[$attributeName] = $buffer; - } - $inAttribute = false; - } - $store[] = array( - "name" => $name, - "attributes" => $attributes - ); - $inFunction = false; - $inAttribute = false; - $inInnerFunction = false; - $hasName = false; - $name = ""; - $buffer = ""; - $waitfor = ""; - $attributes = array(); - } - continue; - } - - // attributes - if (!$inAttribute) { - if ($char !== " ") { - $inAttribute = true; - $buffer = $char; - $attributeName = ""; - } - } else { - if ("" === $attributeName) { - if (in_array($char, array(" ", "="))) { - $attributeName = trim($buffer); - if (" " === $char) { - $attributes[$attributeName] = ""; - $inAttribute = false; - } - $buffer = ""; - } else { - $buffer .= $char; - } - } else { - if ("" === $waitfor) { - if (in_array($char, array("'", "\""))) { - $waitfor = $char; - } else { - $waitfor = " "; - $buffer .= $char; - } - continue; - } - if ($inInnerFunction) { - $buffer .= $char; - } else { - // end of attribute ? - if ($char === $waitfor) { - $attributes[$attributeName] = $buffer; - $inAttribute = false; - $waitfor = ""; - } else { - $buffer .= $char; - } - } - } - } - } - - return $store; - } -} diff --git a/local/modules/modules/TheliaSmarty/Template/SmartyParser.php b/local/modules/modules/TheliaSmarty/Template/SmartyParser.php deleted file mode 100644 index 679dbbff..00000000 --- a/local/modules/modules/TheliaSmarty/Template/SmartyParser.php +++ /dev/null @@ -1,514 +0,0 @@ - - * @author Etienne Roudeix - */ -class SmartyParser extends Smarty implements ParserInterface -{ - public $plugins = array(); - - /** @var EventDispatcherInterface */ - protected $dispatcher; - - /** @var ParserContext */ - protected $parserContext; - - /** @var TemplateHelperInterface */ - protected $templateHelper; - - /** @var RequestStack */ - protected $requestStack; - - protected $backOfficeTemplateDirectories = array(); - protected $frontOfficeTemplateDirectories = array(); - - protected $templateDirectories = array(); - - /** @var TemplateDefinition */ - protected $templateDefinition; - - /** @var int */ - protected $status = 200; - - /** @var string */ - protected $env; - - /** @var bool */ - protected $debug; - - /** - * @param RequestStack $requestStack - * @param EventDispatcherInterface $dispatcher - * @param ParserContext $parserContext - * @param TemplateHelperInterface $templateHelper - * @param string $env - * @param bool $debug - */ - public function __construct( - RequestStack $requestStack, - EventDispatcherInterface $dispatcher, - ParserContext $parserContext, - TemplateHelperInterface $templateHelper, - $env = "prod", - $debug = false - ) { - parent::__construct(); - - $this->requestStack = $requestStack; - $this->dispatcher = $dispatcher; - $this->parserContext = $parserContext; - $this->templateHelper = $templateHelper; - $this->env = $env; - $this->debug = $debug; - - // Configure basic Smarty parameters - - $compile_dir = THELIA_ROOT . 'cache'. DS . $env . DS . 'smarty' . DS . 'compile'; - if (! is_dir($compile_dir)) { - @mkdir($compile_dir, 0777, true); - } - - $cache_dir = THELIA_ROOT . 'cache'. DS . $env . DS . 'smarty' . DS . 'cache'; - if (! is_dir($cache_dir)) { - @mkdir($cache_dir, 0777, true); - } - - $this->setCompileDir($compile_dir); - $this->setCacheDir($cache_dir); - $this->inheritance_merge_compiled_includes = false; - - // Prevent smarty ErrorException: Notice: Undefined index bla bla bla... - $this->error_reporting = E_ALL ^ E_NOTICE; - - // The default HTTP status - $this->status = 200; - - $this->registerFilter('output', array($this, "trimWhitespaces")); - $this->registerFilter('variable', array(__CLASS__, "theliaEscape")); - } - - /** - * Return the current request or null if no request exists - * - * @return Request|null - */ - public function getRequest() - { - return $this->requestStack->getCurrentRequest(); - } - - /** - * Trim whitespaces from the HTML output, preserving required ones in pre, textarea, javascript. - * This methois uses 3 levels of trimming : - * - * - 0 : whitespaces are not trimmed, code remains as is. - * - 1 : only blank lines are trimmed, code remains indented and human-readable (the default) - * - 2 or more : all unnecessary whitespace are removed. Code is very hard to read. - * - * The trim level is defined by the configuration variable html_output_trim_level - * - * @param string $source the HTML source - * @param \Smarty_Internal_Template $template - * @return string - */ - public function trimWhitespaces($source, /** @noinspection PhpUnusedParameterInspection */ \Smarty_Internal_Template $template) - { - $compressionMode = ConfigQuery::read('html_output_trim_level', 1); - - if ($compressionMode == 0) { - return $source; - } - - $store = array(); - $_store = 0; - $_offset = 0; - - // Unify Line-Breaks to \n - $source = preg_replace("/\015\012|\015|\012/", "\n", $source); - - // capture Internet Explorer Conditional Comments - if ($compressionMode == 1) { - $expressions = array( - // remove spaces between attributes (but not in attribute values!) - '#(([a-z0-9]\s*=\s*(["\'])[^\3]*?\3)|<[a-z0-9_]+)\s+([a-z/>])#is' => '\1 \4', - '/(^[\n]*|[\n]+)[\s\t]*[\n]+/' => "\n" - ); - } elseif ($compressionMode >= 2) { - if (preg_match_all('##is', $source, $matches, PREG_OFFSET_CAPTURE | PREG_SET_ORDER)) { - foreach ($matches as $match) { - $store[] = $match[0][0]; - $_length = strlen($match[0][0]); - $replace = '@!@SMARTY:' . $_store . ':SMARTY@!@'; - $source = substr_replace($source, $replace, $match[0][1] - $_offset, $_length); - - $_offset += $_length - strlen($replace); - $_store++; - } - } - - // Strip all HTML-Comments - // yes, even the ones in - - - - - - \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess deleted file mode 100644 index 14249c50..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/.htaccess +++ /dev/null @@ -1 +0,0 @@ -Deny from all \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php deleted file mode 100644 index ef7eef7e..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/config/config.php +++ /dev/null @@ -1,349 +0,0 @@ -exists($webMediaEnvPath)) { - $fileSystem->mkdir($webMediaEnvPath.DS.'upload'); - $fileSystem->mkdir($webMediaEnvPath.DS.'thumbs'); - } - } else { - if (false === $fileSystem->exists($webMediaPath)) { - $fileSystem->mkdir($webMediaPath.DS.'upload'); - $fileSystem->mkdir($webMediaPath.DS.'thumbs'); - } - } -} - -$env = getenv('THELIA_ENV') ?: 'prod'; - -if (file_exists(__DIR__.'/../../../../../../../../core/vendor/autoload.php')) { - // Symlinked with std install - require_once __DIR__.'/../../../../../../../../core/vendor/autoload.php'; -} elseif (file_exists(__DIR__.'/../../../../core/vendor/autoload.php')) { - // Hard copy with std install - require_once __DIR__.'/../../../../core/vendor/autoload.php'; -} elseif (file_exists(__DIR__.'/../../../../../../../../bootstrap.php')) { - // Symlinked with thelia-project - require_once __DIR__.'/../../../../../../../../bootstrap.php'; -} elseif (file_exists(__DIR__.'/../../../../bootstrap.php')) { - // Hard copy with thelia-project - require_once __DIR__.'/../../../../bootstrap.php'; -} - -/** @var Request $request */ -$request = Request::createFromGlobals(); - -$thelia = new Thelia($env, false); - -$thelia->boot(); - -/** @var \Symfony\Component\DependencyInjection\ContainerInterface $container */ -$container = $thelia->getContainer(); - -$eventDispatcher = $container->get('event_dispatcher'); -$container->get('thelia.translator'); -$container->get('thelia.url.manager'); -$container->set('request', $request); -$container->get('request_stack')->push($request); -$event = new \Thelia\Core\Event\SessionEvent(THELIA_CACHE_DIR.$env, false, $env); - -$eventDispatcher->dispatch(\Thelia\Core\TheliaKernelEvents::SESSION, $event); -$session = $event->getSession(); -$session->start(); -$request->setSession($session); - -/** @var \Thelia\Core\Security\SecurityContext $securityContext */ -$securityContext = $container->get('thelia.securityContext'); - -// We just check the current user has the ADMIN role. -$isGranted = $securityContext->isGranted(['ADMIN'], [], [], []); - -if (false === $isGranted) { - echo "Sorry, it seems that you're not allowed to use this function. ADMIN role is required."; - - exit; -} - -//------------------------------------------------------------------------------ -// DO NOT COPY THESE VARIABLES IN FOLDERS config.php FILES -//------------------------------------------------------------------------------ - -//********************** -//Path configuration -//********************** - -// In this configuration the media folder is located in the /web directory. - -// base url of site (without final /). if you prefer relative urls leave empty. -$base_url = rtrim(ConfigQuery::getConfiguredShopUrl(), '/'); - -// Argh, url_site is not defined ?! -if (empty($base_url)) { - // A we did not used the router to access this dialog, we cannot use the URL class. Use the good old method. - $base_url = $request->getSchemeAndHttpHost().preg_replace('!/tinymce/filemanager/dialog.php.*$!', '', $_SERVER['REQUEST_URI']); -} - -//Check for backward compatibility -if ($env !== "prod") { - // path from base_url to base of upload folder for current env (with start and final /) - $upload_dir = '/media/'.$env.'/upload/'; - - // path from base_url to base of upload folder for current env (with start and final /) - $thumbs_dir = '/media/'.$env.'/thumbs/'; - - // path to file manager folder to upload folder for current env (with final /) - $current_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'upload'.DS; - - // path to file manager folder to thumbs folder for current env (with final /) - // WARNING: thumbs folder should not be inside the upload folder - $thumbs_base_path = THELIA_WEB_DIR.'media'.DS.$env.DS.'thumbs'.DS; -} else { - // path from base_url to base of upload folder (with start and final /) - $upload_dir = '/media/upload/'; - - // path from base_url to base of upload folder (with start and final /) - $thumbs_dir = '/media/thumbs/'; - - // path to file manager folder to upload folder (with final /) - $current_path = THELIA_WEB_DIR.'media'.DS.'upload'.DS; - - // path to file manager folder to thumbs folder (with final /) - // WARNING: thumbs folder should not be inside the upload folder - $thumbs_base_path = THELIA_WEB_DIR.'media'.DS.'thumbs'.DS; -} - -generateFolder($env); - -// path from base_url to filemanager folder (with start and final /) -$filemanager_dir = '/tinymce/filemanager/'; - -// Set the language to the back-office current language, if it is available -$current_locale = $request->getSession()->getLang()->getLocale(); - -if (file_exists(__DIR__.DS.'..'.DS.'lang.'.DS.$current_locale.'.php')) { - $default_language = $current_locale; -} else { - $default_language = 'en_EN'; -} - -// OPTIONAL SECURITY -// if set to true only those will access RF whose url contains the access key(akey) like: -// -// in tinymce a new parameter added: filemanager_access_key:"myPrivateKey" -// example tinymce config: -// tiny init ... -// -// external_filemanager_path:"../filemanager/", -// filemanager_title:"Filemanager" , -// filemanager_access_key:"myPrivateKey" , -// ... -define('USE_ACCESS_KEYS', false); // TRUE or FALSE - -// add access keys eg: array('myPrivateKey', 'someoneElseKey'); -// keys should only containt (a-z A-Z 0-9 \ . _ -) characters -// if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this: -// $username = 'Admin'; -// $salt = 'dsflFWR9u2xQa' (a hard coded string) -// $akey = md5($username.$salt); -// DO NOT use 'key' as access key! -// Keys are CASE SENSITIVE! -$access_keys = array('myPrivateKey', 'someoneElseKey'); - -//-------------------------------------------------------------------------------------------------------- -// YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS -//-------------------------------------------------------------------------------------------------------- - -$MaxSizeUpload = 100; //Mb - -// SERVER OVERRIDE -if ((int) (ini_get('post_max_size')) < $MaxSizeUpload) { - $MaxSizeUpload = (int) (ini_get('post_max_size')); -} - -// $default_language = "en_EN"; //default language file name -$icon_theme = "ico"; //ico or ico_dark you can cusatomize just putting a folder inside filemanager/img -$show_folder_size = true; //Show or not show folder size in list view feature in filemanager (is possible, if there is a large folder, to greatly increase the calculations) -$show_sorting_bar = true; //Show or not show sorting feature in filemanager -$loading_bar = true; //Show or not show loading bar -$transliteration = false; //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters) - -//******************************************* -//Images limit and resizing configuration -//******************************************* - -// set maximum pixel width and/or maximum pixel height for all images -// If you set a maximum width or height, oversized images are converted to those limits. Images smaller than the limit(s) are unaffected -// if you don't need a limit set both to 0 -$image_max_width = 0; -$image_max_height = 0; - -//Automatic resizing // -// If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension -// If you set width or height to 0 the script automatically calculates the other dimension -// Is possible that if you upload very big images the script not work to overcome this increase the php configuration of memory and time limit -$image_resizing = false; -$image_resizing_width = 0; -$image_resizing_height = 0; - -//****************** -// Default layout setting -// -// 0 => boxes -// 1 => detailed list (1 column) -// 2 => columns list (multiple columns depending on the width of the page) -// YOU CAN ALSO PASS THIS PARAMETERS USING SESSION VAR => $_SESSION['RF']["VIEW"]= -// -//****************** -$default_view = 0; - -//set if the filename is truncated when overflow first row -$ellipsis_title_after_first_row = true; - -//************************* -//Permissions configuration -//****************** -$delete_files = true; -$create_folders = true; -$delete_folders = true; -$upload_files = true; -$rename_files = true; -$rename_folders = true; -$duplicate_files = true; -$copy_cut_files = true; // for copy/cut files -$copy_cut_dirs = true; // for copy/cut directories - - -// defines size limit for paste in MB / operation -// set 'FALSE' for no limit -$copy_cut_max_size = 100; -// defines file count limit for paste / operation -// set 'FALSE' for no limit -$copy_cut_max_count = 200; -//IF any of these limits reached, operation won't start and generate warning - -//********************** -//Allowed extensions (lowercase insert) -//********************** -$ext_img = array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg'); //Images -$ext_file = array( - 'doc', - 'docx', - 'rtf', - 'pdf', - 'xls', - 'xlsx', - 'txt', - 'csv', - 'html', - 'xhtml', - 'psd', - 'sql', - 'log', - 'fla', - 'xml', - 'ade', - 'adp', - 'mdb', - 'accdb', - 'ppt', - 'pptx', - 'odt', - 'ots', - 'ott', - 'odb', - 'odg', - 'otp', - 'otg', - 'odf', - 'ods', - 'odp', - 'css', - 'ai', -); //Files -$ext_video = array('mov', 'mpeg', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm"); //Video -$ext_music = array('mp3', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav'); //Audio -$ext_misc = array('zip', 'rar', 'gz', 'tar', 'iso', 'dmg'); //Archives - -$ext = array_merge($ext_img, $ext_file, $ext_misc, $ext_video, $ext_music); //allowed extensions - -/****************** - * AVIARY config - *******************/ -$aviary_active = false; -$aviary_key = "dvh8qudbp6yx2bnp"; -$aviary_secret = "m6xaym5q42rpw433"; -$aviary_version = 3; -$aviary_language = 'en'; - -//The filter and sorter are managed through both javascript and php scripts because if you have a lot of -//file in a folder the javascript script can't sort all or filter all, so the filemanager switch to php script. -//The plugin automatic swich javascript to php when the current folder exceeds the below limit of files number -$file_number_limit_js = 500; - -//********************** -// Hidden files and folders -//********************** -// set the names of any folders you want hidden (eg "hidden_folder1", "hidden_folder2" ) Remember all folders with these names will be hidden (you can set any exceptions in config.php files on folders) -$hidden_folders = array(); -// set the names of any files you want hidden. Remember these names will be hidden in all folders (eg "this_document.pdf", "that_image.jpg" ) -$hidden_files = array('config.php'); - -/******************* - * JAVA upload - *******************/ -$java_upload = true; -$JAVAMaxSizeUpload = 200; //Gb - - -//************************************ -//Thumbnail for external use creation -//************************************ - - -// New image resized creation with fixed path from filemanager folder after uploading (thumbnails in fixed mode) -// If you want create images resized out of upload folder for use with external script you can choose this method, -// You can create also more than one image at a time just simply add a value in the array -// Remember than the image creation respect the folder hierarchy so if you are inside source/test/test1/ the new image will create at -// path_from_filemanager/test/test1/ -// PS if there isn't write permission in your destination folder you must set it -$fixed_image_creation = false; //activate or not the creation of one or more image resized with fixed path from filemanager folder -$fixed_path_from_filemanager = array( - '../test/', - '../test1/', -); //fixed path of the image folder from the current position on upload folder -$fixed_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename -$fixed_image_creation_to_append = array('_test', ''); //name to appendon filename -$fixed_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height) -$fixed_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width) - - -// New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode) -// With Responsive filemanager you can create automatically resized image inside the upload folder, also more than one at a time -// just simply add a value in the array -// The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here -$relative_image_creation = false; //activate or not the creation of one or more image resized with relative path from upload folder -$relative_path_from_current_pos = array( - 'thumb/', - 'thumb/', -); //relative path of the image folder from the current position on upload folder -$relative_image_creation_name_to_prepend = array('', 'test_'); //name to prepend on filename -$relative_image_creation_name_to_append = array('_test', ''); //name to append on filename -$relative_image_creation_width = array(300, 400); //width of image (you can leave empty if you set height) -$relative_image_creation_height = array(200, ''); //height of image (you can leave empty if you set width) -; diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css deleted file mode 100644 index 70414368..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-lightbox.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! -* bootstrap-lightbox.css v0.6.0 -* Copyright 2013 Jason Butz -* http://www.apache.org/licenses/LICENSE-2.0.txt -*/ -.lightbox{position:relative;top:70px;z-index:1050;line-height:0;text-align:center;background-color:transparent;outline:0}.lightbox .hide{display:none}.lightbox .in{display:block}.lightbox-content{display:inline-block;-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.lightbox-content .lightbox-caption{position:absolute;right:12px;bottom:11px;left:11px;padding:2%;font-size:14px;line-height:18px;color:white;text-align:center;text-shadow:0 -1px 0 #000;text-shadow:0 -1px 0 rgba(0,0,0,0.3);background:#000;background:rgba(0,0,0,0.6)}.lightbox-header .close{margin-top:-16px;margin-right:-16px;font-size:2em;color:white;opacity:.8;filter:alpha(opacity=80)}.lightbox-header .close :hover{opacity:.4;filter:alpha(opacity=40)} diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css deleted file mode 100644 index 373c1b6b..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-modal.min.css +++ /dev/null @@ -1,8 +0,0 @@ -/*! - * Bootstrap Modal - * - * Copyright Jordan Schroter - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - */.modal-open{overflow:hidden}.modal-open.page-overflow .page-container,.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom,.modal-open.page-overflow .modal-scrollable{overflow-y:scroll}@media (max-width:840px){.modal-open.page-overflow .page-container .navbar-fixed-top,.modal-open.page-overflow .page-container .navbar-fixed-bottom{overflow-y:visible}}.modal-scrollable{position:fixed;top:0;bottom:0;left:0;right:0;overflow:auto}.modal{outline:0;position:absolute;margin-top:0;top:50%;overflow:visible}.modal.fade{top:-100%;-webkit-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out;transition:opacity .3s linear,top .3s ease-out,bottom .3s ease-out,margin-top .3s ease-out}.modal.fade.in{top:50%}.modal-body{max-height:none;overflow:visible}.modal.modal-absolute{position:absolute;z-index:950}.modal .loading-mask{position:absolute;top:0;bottom:0;left:0;right:0;background:#fff;border-radius:6px}.modal-backdrop.modal-absolute{position:absolute;z-index:940}.modal-backdrop,.modal-backdrop.fade.in{opacity:.85;filter:alpha(opacity=85);background:#eee}.modal.container{width:940px;margin-left:-470px}.modal-overflow.modal{top:1%}.modal-overflow.modal.fade{top:-100%}.modal-overflow.modal.fade.in{top:1%}.modal-overflow .modal-body{overflow:auto;-webkit-overflow-scrolling:touch}@media (min-width:1200px){.modal.container{width:1170px;margin-left:-585px}}@media (max-width:840px){.modal,.modal.container,.modal.modal-overflow{top:1%;right:1%;left:1%;bottom:auto;width:auto!important;height:auto!important;margin:0!important;padding:0!important}.modal.fade.in,.modal.container.fade.in,.modal.modal-overflow.fade.in{top:1%;bottom:auto}.modal-body,.modal-overflow .modal-body{position:static;margin:0;height:auto!important;max-height:none!important;overflow:visible!important}.modal-footer,.modal-overflow .modal-footer{position:static}}.loading-spinner{position:absolute;top:50%;left:50%;margin:-12px 0 0 -12px}.animated{-webkit-animation-duration:1s;-moz-animation-duration:1s;-o-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;-o-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px)}}@-moz-keyframes shake{0%,100%{-moz-transform:translateX(0)}10%,30%,50%,70%,90%{-moz-transform:translateX(-10px)}20%,40%,60%,80%{-moz-transform:translateX(10px)}}@-o-keyframes shake{0%,100%{-o-transform:translateX(0)}10%,30%,50%,70%,90%{-o-transform:translateX(-10px)}20%,40%,60%,80%{-o-transform:translateX(10px)}}@keyframes shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-10px)}20%,40%,60%,80%{transform:translateX(10px)}}.shake{-webkit-animation-name:shake;-moz-animation-name:shake;-o-animation-name:shake;animation-name:shake} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css deleted file mode 100644 index 0de1c5db..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap-responsive.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap Responsive v2.3.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:839px) and (max-width:839px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:839px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:839px) and (max-width:839px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:839px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:839px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:840px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css deleted file mode 100644 index c10c7f41..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/bootstrap.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap v2.3.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css deleted file mode 100644 index bb839c21..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.css +++ /dev/null @@ -1,410 +0,0 @@ -/* The MIT License */ -.dropzone, -.dropzone *, -.dropzone-previews, -.dropzone-previews * { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.dropzone { - position: relative; - border: 1px solid rgba(0,0,0,0.08); - background: rgba(0,0,0,0.02); - padding: 1em; -} -.dropzone.dz-clickable { - cursor: pointer; -} -.dropzone.dz-clickable .dz-message, -.dropzone.dz-clickable .dz-message span { - cursor: pointer; -} -.dropzone.dz-clickable * { - cursor: default; -} -.dropzone .dz-message { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone.dz-drag-hover { - border-color: rgba(0,0,0,0.15); - background: rgba(0,0,0,0.04); -} -.dropzone.dz-started .dz-message { - display: none; -} -.dropzone .dz-preview, -.dropzone-previews .dz-preview { - background: rgba(255,255,255,0.8); - position: relative; - display: inline-block; - margin: 17px; - vertical-align: top; - border: 1px solid #acacac; - padding: 6px 6px 6px 6px; -} -.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail], -.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail] { - display: none; -} -.dropzone .dz-preview .dz-details, -.dropzone-previews .dz-preview .dz-details { - width: 100px; - height: 100px; - position: relative; - background: #ebebeb; - padding: 5px; - margin-bottom: 22px; -} -.dropzone .dz-preview .dz-details .dz-filename, -.dropzone-previews .dz-preview .dz-details .dz-filename { - overflow: hidden; - height: 100%; -} -.dropzone .dz-preview .dz-details img, -.dropzone-previews .dz-preview .dz-details img { - position: absolute; - top: 0; - left: 0; - width: 100px; - height: 100px; -} -.dropzone .dz-preview .dz-details .dz-size, -.dropzone-previews .dz-preview .dz-details .dz-size { - position: absolute; - bottom: -28px; - left: 3px; - height: 28px; - line-height: 28px; -} -.dropzone .dz-preview.dz-error .dz-error-mark, -.dropzone-previews .dz-preview.dz-error .dz-error-mark { - display: block; -} -.dropzone .dz-preview.dz-success .dz-success-mark, -.dropzone-previews .dz-preview.dz-success .dz-success-mark { - display: block; -} -.dropzone .dz-preview:hover .dz-details img, -.dropzone-previews .dz-preview:hover .dz-details img { - display: none; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark, -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - display: none; - position: absolute; - width: 40px; - height: 40px; - font-size: 30px; - text-align: center; - right: -10px; - top: -10px; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - color: #8cc657; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - color: #ee162d; -} -.dropzone .dz-preview .dz-progress, -.dropzone-previews .dz-preview .dz-progress { - position: absolute; - top: 100px; - left: 6px; - right: 6px; - height: 6px; - background: #d7d7d7; - display: none; -} -.dropzone .dz-preview .dz-progress .dz-upload, -.dropzone-previews .dz-preview .dz-progress .dz-upload { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 0%; - background-color: #8cc657; -} -.dropzone .dz-preview.dz-processing .dz-progress, -.dropzone-previews .dz-preview.dz-processing .dz-progress { - display: block; -} -.dropzone .dz-preview .dz-error-message, -.dropzone-previews .dz-preview .dz-error-message { - display: none; - position: absolute; - top: -5px; - left: -20px; - background: rgba(245,245,245,0.8); - padding: 8px 10px; - color: #800; - min-width: 140px; - max-width: 500px; - z-index: 500; -} -.dropzone .dz-preview:hover.dz-error .dz-error-message, -.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { - display: block; -} -.dropzone { - border: 1px solid rgba(0,0,0,0.03); - min-height: 360px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: rgba(0,0,0,0.03); - padding: 23px; -} -.dropzone .dz-default.dz-message { - opacity: 1; - -ms-filter: none; - filter: none; - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - -o-transition: opacity 0.3s ease-in-out; - -ms-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: no-repeat; - background-position: 0 0; - position: absolute; - width: 428px; - height: 123px; - margin-left: -214px; - margin-top: -61.5px; - top: 50%; - left: 50%; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-default.dz-message { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-default.dz-message span { - display: none; -} -.dropzone.dz-square .dz-default.dz-message { - background-position: 0 -123px; - width: 268px; - margin-left: -134px; - height: 174px; - margin-top: -87px; -} -.dropzone.dz-drag-hover .dz-message { - opacity: 0.15; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=15)"; - filter: alpha(opacity=15); -} -.dropzone.dz-started .dz-message { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); -} -.dropzone .dz-preview, -.dropzone-previews .dz-preview { - -webkit-box-shadow: 1px 1px 4px rgba(0,0,0,0.16); - box-shadow: 1px 1px 4px rgba(0,0,0,0.16); - font-size: 14px; -} -.dropzone .dz-preview.dz-image-preview:hover .dz-details img, -.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img { - display: block; - opacity: 0.1; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)"; - filter: alpha(opacity=10); -} -.dropzone .dz-preview.dz-success .dz-success-mark, -.dropzone-previews .dz-preview.dz-success .dz-success-mark { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone .dz-preview.dz-error .dz-error-mark, -.dropzone-previews .dz-preview.dz-error .dz-error-mark { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone .dz-preview.dz-error .dz-progress .dz-upload, -.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload { - background: #ee1e2d; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark, -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.4s ease-in-out; - -moz-transition: opacity 0.4s ease-in-out; - -o-transition: opacity 0.4s ease-in-out; - -ms-transition: opacity 0.4s ease-in-out; - transition: opacity 0.4s ease-in-out; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: no-repeat; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-preview .dz-error-mark, - .dropzone-previews .dz-preview .dz-error-mark, - .dropzone .dz-preview .dz-success-mark, - .dropzone-previews .dz-preview .dz-success-mark { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-preview .dz-error-mark span, -.dropzone-previews .dz-preview .dz-error-mark span, -.dropzone .dz-preview .dz-success-mark span, -.dropzone-previews .dz-preview .dz-success-mark span { - display: none; -} -.dropzone .dz-preview .dz-error-mark, -.dropzone-previews .dz-preview .dz-error-mark { - background-position: -268px -123px; -} -.dropzone .dz-preview .dz-success-mark, -.dropzone-previews .dz-preview .dz-success-mark { - background-position: -268px -163px; -} -.dropzone .dz-preview .dz-progress .dz-upload, -.dropzone-previews .dz-preview .dz-progress .dz-upload { - -webkit-animation: loading 0.4s linear infinite; - -moz-animation: loading 0.4s linear infinite; - -o-animation: loading 0.4s linear infinite; - -ms-animation: loading 0.4s linear infinite; - animation: loading 0.4s linear infinite; - -webkit-transition: width 0.3s ease-in-out; - -moz-transition: width 0.3s ease-in-out; - -o-transition: width 0.3s ease-in-out; - -ms-transition: width 0.3s ease-in-out; - transition: width 0.3s ease-in-out; - -webkit-border-radius: 2px; - border-radius: 2px; - position: absolute; - top: 0; - left: 0; - width: 0%; - height: 100%; - /*background-image: url("../img/spritemap.png");*/ - background-repeat: repeat-x; - background-position: 0px -400px; -} -@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx) { - .dropzone .dz-preview .dz-progress .dz-upload, - .dropzone-previews .dz-preview .dz-progress .dz-upload { - /*background-image: url("../img/spritemap@2x.png");*/ - -webkit-background-size: 428px 406px; - -moz-background-size: 428px 406px; - background-size: 428px 406px; - } -} -.dropzone .dz-preview.dz-success .dz-progress, -.dropzone-previews .dz-preview.dz-success .dz-progress { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.4s ease-in-out; - -moz-transition: opacity 0.4s ease-in-out; - -o-transition: opacity 0.4s ease-in-out; - -ms-transition: opacity 0.4s ease-in-out; - transition: opacity 0.4s ease-in-out; -} -.dropzone .dz-preview .dz-error-message, -.dropzone-previews .dz-preview .dz-error-message { - display: block; - opacity: 0; - -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.3s ease-in-out; - -moz-transition: opacity 0.3s ease-in-out; - -o-transition: opacity 0.3s ease-in-out; - -ms-transition: opacity 0.3s ease-in-out; - transition: opacity 0.3s ease-in-out; -} -.dropzone .dz-preview:hover.dz-error .dz-error-message, -.dropzone-previews .dz-preview:hover.dz-error .dz-error-message { - opacity: 1; - -ms-filter: none; - filter: none; -} -.dropzone a.dz-remove, -.dropzone-previews a.dz-remove { - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, #eee)); - background-image: -webkit-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -moz-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -o-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: -ms-linear-gradient(top, #fafafa 0, #eee 100%); - background-image: linear-gradient(top, #fafafa 0, #eee 100%); - -webkit-border-radius: 2px; - border-radius: 2px; - border: 1px solid #eee; - text-decoration: none; - display: block; - padding: 4px 5px; - text-align: center; - color: #aaa; - margin-top: 26px; -} -.dropzone a.dz-remove:hover, -.dropzone-previews a.dz-remove:hover { - color: #666; -} -@-moz-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-webkit-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-o-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@-ms-keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} -@keyframes loading { - 0% { - background-position: 0 -400px; - } - - 100% { - background-position: -7px -400px; - } -} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css deleted file mode 100644 index f9abb126..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/dropzone.min.css +++ /dev/null @@ -1 +0,0 @@ -.dropzone,.dropzone *,.dropzone-previews,.dropzone-previews *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dropzone{position:relative;border:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.02);padding:1em}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message span{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone .dz-message{opacity:1;-ms-filter:none;filter:none}.dropzone.dz-drag-hover{border-color:rgba(0,0,0,.15);background:rgba(0,0,0,.04)}.dropzone.dz-started .dz-message{display:none}.dropzone .dz-preview,.dropzone-previews .dz-preview{background:rgba(255,255,255,.8);position:relative;display:inline-block;margin:17px;vertical-align:top;border:1px solid #acacac;padding:6px}.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail],.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail]{display:none}.dropzone .dz-preview .dz-details,.dropzone-previews .dz-preview .dz-details{width:100px;height:100px;position:relative;background:#ebebeb;padding:5px;margin-bottom:22px}.dropzone .dz-preview .dz-details .dz-filename,.dropzone-previews .dz-preview .dz-details .dz-filename{overflow:hidden;height:100%}.dropzone .dz-preview .dz-details img,.dropzone-previews .dz-preview .dz-details img{position:absolute;top:0;left:0;width:100px;height:100px}.dropzone .dz-preview .dz-details .dz-size,.dropzone-previews .dz-preview .dz-details .dz-size{position:absolute;bottom:-28px;left:3px;height:28px;line-height:28px}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{display:block}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{display:block}.dropzone .dz-preview:hover .dz-details img,.dropzone-previews .dz-preview:hover .dz-details img{display:none}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark,.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{display:none;position:absolute;width:40px;height:40px;font-size:30px;text-align:center;right:-10px;top:-10px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{color:#8cc657}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{color:#ee162d}.dropzone .dz-preview .dz-progress,.dropzone-previews .dz-preview .dz-progress{position:absolute;top:100px;left:6px;right:6px;height:6px;background:#d7d7d7;display:none}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{position:absolute;top:0;bottom:0;left:0;width:0;background-color:#8cc657}.dropzone .dz-preview.dz-processing .dz-progress,.dropzone-previews .dz-preview.dz-processing .dz-progress{display:block}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:none;position:absolute;top:-5px;left:-20px;background:rgba(245,245,245,.8);padding:8px 10px;color:#800;min-width:140px;max-width:500px;z-index:500}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{display:block}.dropzone{border:1px solid rgba(0,0,0,.03);min-height:360px;-webkit-border-radius:3px;border-radius:3px;background:rgba(0,0,0,.03);padding:23px}.dropzone .dz-default.dz-message{opacity:1;-ms-filter:none;filter:none;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-image:url(../img/spritemap.png);background-repeat:no-repeat;background-position:0 0;position:absolute;width:428px;height:123px;margin-left:-214px;margin-top:-61.5px;top:50%;left:50%}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-default.dz-message{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-default.dz-message span{display:none}.dropzone.dz-square .dz-default.dz-message{background-position:0 -123px;width:268px;margin-left:-134px;height:174px;margin-top:-87px}.dropzone.dz-drag-hover .dz-message{opacity:.15;-ms-filter:"alpha(Opacity=15)";filter:alpha(opacity=15)}.dropzone.dz-started .dz-message{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0)}.dropzone .dz-preview,.dropzone-previews .dz-preview{-webkit-box-shadow:1px 1px 4px rgba(0,0,0,.16);box-shadow:1px 1px 4px rgba(0,0,0,.16);font-size:14px}.dropzone .dz-preview.dz-image-preview:hover .dz-details img,.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img{display:block;opacity:.1;-ms-filter:"alpha(Opacity=10)";filter:alpha(opacity=10)}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-progress .dz-upload,.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload{background:#ee1e2d}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;background-image:url(../img/spritemap.png);background-repeat:no-repeat}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview .dz-error-mark span,.dropzone-previews .dz-preview .dz-error-mark span,.dropzone .dz-preview .dz-success-mark span,.dropzone-previews .dz-preview .dz-success-mark span{display:none}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{background-position:-268px -123px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-position:-268px -163px}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{-webkit-animation:loading .4s linear infinite;-moz-animation:loading .4s linear infinite;-o-animation:loading .4s linear infinite;-ms-animation:loading .4s linear infinite;animation:loading .4s linear infinite;-webkit-transition:width .3s ease-in-out;-moz-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;-ms-transition:width .3s ease-in-out;transition:width .3s ease-in-out;-webkit-border-radius:2px;border-radius:2px;position:absolute;top:0;left:0;width:0;height:100%;background-image:url(../img/spritemap.png);background-repeat:repeat-x;background-position:0 -400px}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{background-image:url(../img/spritemap@2x.png);-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview.dz-success .dz-progress,.dropzone-previews .dz-preview.dz-success .dz-progress{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:block;opacity:0;-ms-filter:"alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{opacity:1;-ms-filter:none;filter:none}.dropzone a.dz-remove,.dropzone-previews a.dz-remove{background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fafafa),color-stop(1,#eee));background-image:-webkit-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-moz-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-o-linear-gradient(top,#fafafa 0,#eee 100%);background-image:-ms-linear-gradient(top,#fafafa 0,#eee 100%);background-image:linear-gradient(top,#fafafa 0,#eee 100%);-webkit-border-radius:2px;border-radius:2px;border:1px solid #eee;text-decoration:none;display:block;padding:4px 5px;text-align:center;color:#aaa;margin-top:26px}.dropzone a.dz-remove:hover,.dropzone-previews a.dz-remove:hover{color:#666}@-moz-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-webkit-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-o-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@-ms-keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}}@keyframes loading{0%{background-position:0 -400px}100%{background-position:-7px -400px}} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css deleted file mode 100644 index 21d6805d..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/jquery.contextMenu.min.css +++ /dev/null @@ -1,38 +0,0 @@ -.context-menu-list{font-family:'Open Sans', sans-serif;width:200px;display:inline-block;position:absolute;list-style-type:none;border:1px solid #DDD;background:#fff;font-size:12px;margin:0;padding:5px} -.context-menu-item{background-color:#fff;position:relative;height:auto;word-wrap:break-word;-webkit-user-select:none;-moz-user-select:0;-ms-user-select:none;user-select:none;padding:5px 5px 5px 30px} -.context-menu-item:last-child{border:none} -.context-menu-separator{padding-bottom:0;border-bottom:1px solid #DDD} -.context-menu-item > label > input,.context-menu-item > label > textarea{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text} -.context-menu-item.hover{cursor:pointer;background-color:#DDD} -.context-menu-item.disabled{color:#666} -.context-menu-input.hover,.context-menu-item.disabled.hover{cursor:default;background-color:#EEE} -.context-menu-submenu:after{content:">";color:#666;position:absolute;top:0;right:3px;z-index:1} -.context-menu-item.icon{min-height:18px;vertical-align:middle;background-repeat:no-repeat;background-position:4px 5px;width:auto;display:list-item} -.context-menu-item.icon-edit{background-image:url(../img/page_white_edit.png)} -.context-menu-item.icon-cut{background-image:url(../img/cut.png)} -.context-menu-item.icon-copy{background-image:url(../img/copy.png)} -.context-menu-item.icon-rename{background-image:url(../img/rename.png)} -.context-menu-item.icon-preview{background-image:url(../img/preview.png)} -.context-menu-item.icon-dimension{background-image:url(../img/dimension.png)} -.context-menu-item.icon-date{background-image:url(../img/date.png)} -.context-menu-item.icon-label{background-image:url(../img/label.png)} -.context-menu-item.icon-size{background-image:url(../img/size.png)} -.context-menu-item.icon-download{background-image:url(../img/download.png)} -.context-menu-item.icon-paste{background-image:url(../img/page_white_paste.png)} -.context-menu-item.icon-clipboard-apply {background-image:url(../img/clipboard_apply.png)} -.context-menu-item.icon-delete{background-image:url(../img/page_white_delete.png)} -.context-menu-item.icon-add{background-image:url(../img/page_white_add.png)} -.context-menu-item.icon-quit{background-image:url(../img/door.png)} -.context-menu-item.icon-info{background-image:url(../img/info.png)} -.context-menu-item.icon-extract{background-image:url(../img/zip.png)} -.context-menu-item.icon-url{background-image:url(../img/url.png)} -.context-menu-item.icon-edit_img{background-image:url(../img/edit_img.png)} -.context-menu-item.icon-duplicate{background-image:url(../img/duplicate.png)} -.context-menu-input > label > *{vertical-align:top} -.context-menu-input > label > input[type=checkbox],.context-menu-input > label > input[type=radio]{margin-left:-17px} -.context-menu-input > label > span{margin-left:5px} -.context-menu-input > label,.context-menu-input > label > input[type=text],.context-menu-input > label > textarea,.context-menu-input > label > select{display:block;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box} -.context-menu-input > label > textarea{height:100px} -.context-menu-item > .context-menu-list{display:none;right:-5px;top:5px} -.context-menu-item.hover > .context-menu-list{display:block} -.context-menu-accesskey{text-decoration:underline} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css deleted file mode 100644 index 061ef75b..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.css +++ /dev/null @@ -1 +0,0 @@ -*,*:after,*:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}body,html{font-family:'Open Sans',sans-serif;font-size:100%;padding:0;margin:0}body{padding-top:32px;font-weight:200;background:#ececec;overflow:-moz-scrollbars-vertical}#qLpercentage{font-family:'Open Sans',sans-serif;font-size:40px;line-height:40px;color:#bbb;font-weight:200;height:60px;-webkit-border-radius:10px;border-radius:10px;padding:10px;text-shadow:1px 1px 2px #fff;filter:dropshadow(color=#fff, offx=1, offy=1)}#qLbar{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==);background:-moz-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(122,122,122,0.4)), color-stop(100%, rgba(122,122,122,0.4)));background:-webkit-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-o-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:-ms-linear-gradient(top, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);background:linear-gradient(to bottom, rgba(122,122,122,0.4) 0, rgba(122,122,122,0.4) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#667a7a7a', endColorstr='#667a7a7a', GradientType=0);z-index:200;margin:0;overflow:hidden}[class^="rficon-"],[class*=" rficon-"]{display:inline-block;width:16px;height:16px;margin-top:1px;*margin-right:.3em;line-height:16px;vertical-align:text-top;background-position:0 0;background-repeat:no-repeat}.rficon-clipboard-apply{background-image:url(../img/clipboard_apply.png)}.rficon-clipboard-clear{background-image:url(../img/clipboard_clear.png)}.btn{-webkit-border-radius:0;border-radius:0}.container-fluid{padding-right:0 !important;margin-top:10px !important}.img-precontainer{margin:auto;width:100%;text-align:center;background:#fff;border:none}.img-container{height:91px;width:122px;padding:0;border:none;overflow:hidden;display:table-cell;text-align:center;vertical-align:middle;margin:auto}ul.breadcrumb{margin-bottom:5px;-webkit-border-radius:0;border-radius:0;padding-bottom:4px;padding-top:6px;background:#f0f0f0;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);border-bottom:1px solid #bbb}ul.breadcrumb .pull-left i{margin-top:2px}.alert{padding:8px 35px 8px 14px;margin-bottom:2px;border:1px solid #aaa;color:#666;font-weight:200;font-size:13px;-webkit-border-radius:0;border-radius:0;background:#fff}.img-container *,.img-container-mini *{vertical-align:middle}#help{display:none}iframe{overflow:auto;-webkit-overflow-scrolling:touch}.upload-tabbable{margin-left:5px;margin-right:5px}.upload-tabbable .upload-help{font-size:11px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff;text-align:center}.upload-tabbable .nav{margin:0}.upload-tabbable .nav li a{font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.upload-tabbable .tab-content{padding:5px;border-bottom:1px solid #ddd;border-left:1px solid #ddd;border-rigth:1px solid #ddd;background:#fff;margin-bottom:5px}input#filter-input{margin:0;width:84px;height:26px;vertical-align:bottom;margin-bottom:2px;-webkit-border-radius:0;border-radius:0;font-size:12px;font-weight:200;position:relative;left:1px}.qq-uploader .span9{margin-left:14px !important;width:690px !important}.space10{clear:both;height:10px}h4{font-size:12px;font-weight:200;margin:0;text-align:center;padding:0;margin-top:6px;line-height:18px}h3{font-size:14px;font-weight:200}.boxes{border:1px solid #ccc;word-wrap:break-word;background:#fff;-webkit-box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);box-shadow:1px 1px 2px 0 rgba(0,0,0,0.2);min-height:115px;text-align:center}.container-fluid{padding:0 10px !important}body .avpw .avpw_primary_button,body .avpw .avpw_primary_button:link,body .avpw .avpw_primary_button:visited,body .avpw .avpw_primary_button:active{background-color:#999;color:#fff;background-image:none;border:none}body .avpw .avpw_primary_button:hover{border:none;background-color:#666}.uploader{position:fixed;top:50px;left:14px;margin:auto;width:100%;z-index:9999;overflow:hidden;background:#eee;padding-top:20px;border:1px solid #ccc;display:none;-webkit-box-shadow:0 0 10px 0 rgba(1,1,1,0.5);box-shadow:0 0 10px 0 rgba(1,1,1,0.5)}.download-form{margin-bottom:25px}.grid li i{margin-left:2px;margin-right:2px;z-index:0}.box,.boxx{text-align:center;word-wrap:break-word;vertical-align:top;text-align:left;position:relative;border:none;box-shadow:none;z-index:100;padding:4px}.box .btn{width:100%;background:none;box-shadow:none;border:none;z-index:200}.navbar{margin-bottom:0;border-bottom:1px solid #bbb}.navbar .navbar-inner{border:none;min-height:35px;-webkit-border-radius:0;border-radius:0;padding-bottom:2px;margin:0;padding-right:8px;padding-left:8px}.navbar .navbar-inner .container-fluid{margin:0;margin-top:0 !important;padding:0}.navbar .navbar-inner .container-fluid .brand{display:none}.navbar .navbar-inner .container-fluid .filters span{margin-top:0;font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}ul.sorting{position:absolute;left:-25px;top:20px;min-width:0;background:#eee}ul.sorting li a:hover{background:#aaa}.btn-group .dropdown-toggle.sorting-btn{background:none;border:none;box-shadow:none;position:relative;-webkit-box-shadow:none;top:-5px;font-size:13px}.btn-group .dropdown-toggle.sorting-btn:hover{background:none;border:none;box-shadow:none;-webkit-box-shadow:none}ul.sorting.dropdown-menu>li>a{font-size:12px;text-shadow:none}ul.sorting.dropdown-menu>li>a.ascending{background-image:url(../img/down.png);background-repeat:no-repeat;background-position:6px 8px}ul.sorting.dropdown-menu>li>a.descending{background-image:url(../img/up.png);background-repeat:no-repeat;background-position:6px 8px}.sorter-container{margin-top:5px;margin-bottom:0;-webkit-border-radius:0;border-radius:0;padding-bottom:4px;padding-top:6px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065);background-color:#f5f5f5;position:relative;border-bottom:1px solid #bbb;height:24px}.sorter-container a.sorter{color:#000}.sorter-container a.ascending{padding-left:9px;background-image:url(../img/down.png);background-repeat:no-repeat;background-position:0 3px}.sorter-container a.descending{padding-left:9px;background-image:url(../img/up.png);background-repeat:no-repeat;background-position:0 4px}.sorter-container .img-dimension,.sorter-container .file-date,.sorter-container .file-size,.sorter-container .file-extension,.sorter-container .file-name,.sorter-container .file-operations{display:block;position:absolute;top:0;z-index:100;-webkit-box-shadow:none;box-shadow:none;text-align:left;font-size:13px;margin-top:1px;color:#999}.sorter-container .file-operations{width:110px;right:0}.sorter-container .img-dimension{width:65px;right:123px}.sorter-container .file-date{width:70px;right:188px}.sorter-container .file-size{width:55px;right:258px}.sorter-container .file-extension{width:40px;right:313px}.sorter-container .file-name{width:50px;left:52px}.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{font-size:12px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff;display:none}.view-controller{text-align:left}.view-controller .btn-group>.btn:first-child,.view-controller .btn-group>.btn:last-child{-webkit-border-radius:0;border-radius:0}.navbar .filters .btn{margin-bottom:2px;padding-top:2px;padding-bottom:2px;padding-left:8px;padding-right:8px;margin-top:5px}.filters .types{text-align:right}@media (max-width:780px){#view2{display:none}}@media (max-width:839px){body{padding-top:0}.filters .types{text-align:left}.navbar .navbar-inner .container-fluid .brand{display:block}.navbar .navbar-inner{padding-bottom:4px}.filters div.span3.half,.filters div.half.span6{float:none;width:100%}.container-fluid{margin:0 !important;padding:0}#qLbar{height:50px !important}}@media (min-width:400px) and (max-width:839px){.filters .row-fluid .half{width:48.61878453038674%;*width:48.56559304102504%;float:left}}.tooltip.in{z-index:10000;opacity:1;filter:alpha(opacity=1);font-weight:bold}.tooltip{font-weight:bold;z-index:10000}.grid{padding:0 0;margin:0 auto;list-style:none;-webkit-overflow-scrolling:touch}.grid li{display:inline-block;width:124px;border:none;margin:4px;margin-bottom:8px;padding:0;vertical-align:top}.grid figure{margin:0;position:relative;display:block;width:122px;margin:auto}.grid figure:hover{background:#e0e0e0 !important}.list-view1.grid li{width:100%}.list-view1.grid li figure{width:100%}.grid figcaption{text-align:center;padding:2px;padding-top:8px;color:#fff;height:30px;width:122px;margin-left:0;margin-right:0;position:absolute;top:auto;bottom:0;-webkit-box-shadow:inset 0 0 8px 0 rgba(41,41,41,0.5);box-shadow:inset 0 0 8px 0 rgba(41,41,41,0.5)}.grid figcaption a{margin:0;padding:3px}.grid figcaption h3{margin:0;padding:0;color:#fff}.grid h4{text-align:center;color:#000;padding:0;margin-bottom:4px;margin-top:4px}.grid figure .box{box-sizing:content-box}.list-view0.grid figure .box,.list-view1.grid figure .box,.list-view2.grid figure .box{max-width:100%;display:block;position:relative;overflow:hidden;z-index:1}.list-view0.grid figure .box h4.ellipsis,.list-view1.grid figure .box h4.ellipsis,.list-view2.grid figure .box h4.ellipsis{height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-view0.grid figure .box h4,.list-view1.grid figure .box h4,.list-view2.grid figure .box h4{z-index:1}.list-view0.grid figure .box h4 a,.list-view1.grid figure .box h4 a,.list-view2.grid figure .box h4 a{z-index:1}.list-view0.grid .selected,.list-view1.grid .selected,.list-view2.grid .selected{-webkit-box-shadow:0 0 10px 5px rgba(0,0,0,0.25);box-shadow:0 0 10px 5px rgba(0,0,0,0.25)}.no-touch .list-view0 figure .box{z-index:1;-webkit-transition:-webkit-transform .3s;-moz-transition:-moz-transform .3s;transition:transform .3s}.ui-state-highlight{border:1px solid #f00}.no-touch .list-view0 figure:hover .box,.no-touch .list-view0 figure.cs-hover .box{-webkit-box-shadow:0 0 4px 0 rgba(1,1,1,0.5);box-shadow:0 0 4px 0 rgba(1,1,1,0.5);-webkit-transform:translateY(-26px);-moz-transform:translateY(-26px);-ms-transform:translateY(-26px);transform:translateY(-26px)}.list-view0 figure:hover .box.no-effect,.list-view0 figure.cs-hover .box.no-effect,.no-effect{-webkit-box-shadow:none;box-shadow:none;-webkit-transform:none;-moz-transform:none;-ms-transform:none;transform:none}.list-view0 .img-precontainer-mini{display:none;background:none}a,a:hover{color:#000;text-decoration:none}.back-directory .img-precontainer,.back-directory .img-precontainer-mini,.back-directory .box{background:none}form{margin:0;padding:0}.modal-body form,.modal-body input{margin:0}.modal-header h3{font-weight:300;font-size:20px}.list-view1.sorter-container{display:block}.list-view0.sorter-container,.list-view2.sorter-container{display:none}.list-view0.grid .img-precontainer .img-container img{max-width:122px !important;max-height:91px !important}.list-view0.grid .img-precontainer .img-container img.icon{width:122px;margin-top:0}.list-view0.grid .img-precontainer .filetype{position:absolute;top:0;width:120px;text-align:center;color:#fff;font-size:13px;line-height:22px}.list-view0.grid .cover{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);background:-moz-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0, rgba(255,255,255,0.25)), color-stop(100%, rgba(255,255,255,0.25)));background:-webkit-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-o-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:-ms-linear-gradient(top, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);background:linear-gradient(to bottom, rgba(255,255,255,0.25) 0, rgba(255,255,255,0.25) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#40ffffff', endColorstr='#40ffffff', GradientType=0);width:122px;position:absolute;top:22px;right:0;height:69px}.list-view0.grid .box{background:#fff}.list-view0.grid .directory{background:#ddd}.list-view0.grid figure.back-directory .directory{background:#bbb}.list-view0.grid figcaption{background:#fff}.list-view1.grid li,.list-view2.grid li{margin:0}.list-view1.grid li.back figure.back-directory,.list-view2.grid li.back figure.back-directory{height:34px}.list-view1.grid li:nth-child(odd) figure,.list-view2.grid li:nth-child(odd) figure{background:#f9f9f9}.list-view1.grid li:nth-child(odd) figure.directory,.list-view2.grid li:nth-child(odd) figure.directory{background:#eaeaea}.list-view1.grid li figure,.list-view2.grid li figure{border-bottom:1px solid #ccc;background:#fff}.list-view1.grid li figure.back-directory,.list-view2.grid li figure.back-directory{background:#bbb}.list-view1.grid li figure.back-directory .box,.list-view2.grid li figure.back-directory .box{background:none}.list-view1.grid li figure.directory,.list-view2.grid li figure.directory{background:#efefef}.list-view1.grid li figure.directory box,.list-view2.grid li figure.directory box{padding:0;min-height:10px}.list-view1.grid li figure .box,.list-view2.grid li figure .box{margin-left:50px;-webkit-transition:none;-moz-transition:none;transition:none}.list-view1.grid li figure .box h4,.list-view2.grid li figure .box h4{padding-top:1px;font-size:13px;text-align:left}.list-view1.grid .img-precontainer-mini,.list-view2.grid .img-precontainer-mini{display:block;position:absolute;width:45px;height:34px;overflow:hidden;text-align:center}.list-view1.grid .img-precontainer-mini img,.list-view2.grid .img-precontainer-mini img{height:34px}.list-view1.grid .img-precontainer-mini .filetype,.list-view2.grid .img-precontainer-mini .filetype{position:absolute;top:5px;text-align:center;left:5px;padding:1px 2px;font-size:13px;line-height:22px;width:34px;height:24px;color:#fff;background:#333}.list-view1.grid .cover,.list-view2.grid .cover{display:none}.list-view1.grid .img-container-mini,.list-view2.grid .img-container-mini{width:45px;height:34px;border:none;overflow:hidden;display:table-cell;text-align:center;vertical-align:middle;margin:auto}.list-view1.grid .img-precontainer-mini.original-thumb,.list-view2.grid .img-precontainer-mini.original-thumb{padding:0}.list-view1.grid .img-precontainer-mini.original-thumb img,.list-view2.grid .img-precontainer-mini.original-thumb img{width:auto;margin:0;height:34px}.list-view1.grid .img-precontainer-mini.original-thumb img.original,.list-view2.grid .img-precontainer-mini.original-thumb img.original{width:auto;height:auto}.list-view1.grid .img-precontainer,.list-view2.grid .img-precontainer{display:none}.list-view1.grid figcaption,.list-view2.grid figcaption{background:none;width:120px;position:absolute;right:0;top:0;z-index:1;bottom:0;-webkit-box-shadow:none;box-shadow:none;text-align:right}.list-view1.grid .selected,.list-view2.grid .selected{-webkit-box-shadow:0 0 3px 2px rgba(0,0,0,0.2);box-shadow:0 0 3px 2px rgba(0,0,0,0.2)}.list-view1.grid .img-dimension,.list-view1.grid .file-date,.list-view1.grid .file-size,.list-view1.grid .file-extension{overflow:hidden;display:block;position:absolute;top:0;z-index:1;-webkit-box-shadow:none;box-shadow:none;text-align:left;margin-top:7px}.list-view1.grid .img-dimension{width:65px;right:120px}.list-view1.grid .file-date{width:70px;right:185px}.list-view1.grid .file-size{width:55px;right:255px}.list-view1.grid .file-extension{width:40px;right:310px}.list-view1.grid figure .box{padding-right:352px}.list-view2.grid figure .box{padding-right:115px}@media (max-width:610px){.list-view1.grid figure .box{padding-right:312px}.list-view1.grid figure .file-extension{display:none}.sorter-container .file-extension{display:none}}@media (max-width:565px){.list-view1.grid figure .box{padding-right:257px}.list-view1.grid figure .file-size{display:none}.sorter-container .file-size{display:none}}@media (max-width:495px){.list-view1.grid figure .box{padding-right:187px}.list-view1.grid figure .file-date{display:none}.sorter-container .file-date{display:none}}@media (max-width:430px){.list-view1.grid figure .box{padding-right:115px}.list-view1.grid figure .img-dimension{display:none}.sorter-container .img-dimension{display:none}.breadcrumb{margin-left:0;margin-right:0}}.list-view2.grid .img-precontainer-mini .filetype.pdf,.list-view1.grid .img-precontainer-mini .filetype.pdf{background:#cb0011}.list-view2.grid .img-precontainer-mini .filetype.css,.list-view1.grid .img-precontainer-mini .filetype.css{background:#d10698}.list-view2.grid .img-precontainer-mini .filetype.ai,.list-view1.grid .img-precontainer-mini .filetype.ai{background:#d6772f}.list-view2.grid .img-precontainer-mini .filetype.psd,.list-view1.grid .img-precontainer-mini .filetype.psd{background:#0960a4}.list-view2.grid .img-precontainer-mini .filetype.html,.list-view1.grid .img-precontainer-mini .filetype.html,.list-view2.grid .img-precontainer-mini .filetype.xhtml,.list-view1.grid .img-precontainer-mini .filetype.xhtml{background:#035bc4}.list-view2.grid .img-precontainer-mini .filetype.fla,.list-view1.grid .img-precontainer-mini .filetype.fla,.list-view2.grid .img-precontainer-mini .filetype.flv,.list-view1.grid .img-precontainer-mini .filetype.flv{background:#cf302e}.list-view2.grid .img-precontainer-mini .filetype.ppt,.list-view1.grid .img-precontainer-mini .filetype.ppt,.list-view2.grid .img-precontainer-mini .filetype.pptx,.list-view1.grid .img-precontainer-mini .filetype.pptx{background:#da5b00}.list-view2.grid .img-precontainer-mini .filetype.xls,.list-view1.grid .img-precontainer-mini .filetype.xls,.list-view2.grid .img-precontainer-mini .filetype.xlsx,.list-view1.grid .img-precontainer-mini .filetype.xlsx,.list-view2.grid .img-precontainer-mini .filetype.css,.list-view1.grid .img-precontainer-mini .filetype.css{background:#1a712c}.list-view2.grid .img-precontainer-mini .filetype.rts,.list-view1.grid .img-precontainer-mini .filetype.rts,.list-view2.grid .img-precontainer-mini .filetype.doc,.list-view1.grid .img-precontainer-mini .filetype.doc,.list-view2.grid .img-precontainer-mini .filetype.docx,.list-view1.grid .img-precontainer-mini .filetype.docx{background:#002093}.list-view2.grid .img-precontainer-mini .filetype.rar,.list-view1.grid .img-precontainer-mini .filetype.rar,.list-view2.grid .img-precontainer-mini .filetype.zip,.list-view1.grid .img-precontainer-mini .filetype.zip,.list-view2.grid .img-precontainer-mini .filetype.gzip,.list-view1.grid .img-precontainer-mini .filetype.gzip{background:#fe9221}.list-view2.grid .img-precontainer-mini .filetype.mp4,.list-view1.grid .img-precontainer-mini .filetype.mp4,.list-view2.grid .img-precontainer-mini .filetype.mpeg,.list-view1.grid .img-precontainer-mini .filetype.mpeg,.list-view2.grid .img-precontainer-mini .filetype.mov,.list-view1.grid .img-precontainer-mini .filetype.mov,.list-view2.grid .img-precontainer-mini .filetype.avi,.list-view1.grid .img-precontainer-mini .filetype.avi,.list-view2.grid .img-precontainer-mini .filetype.mpg,.list-view1.grid .img-precontainer-mini .filetype.mpg,.list-view2.grid .img-precontainer-mini .filetype.wma,.list-view1.grid .img-precontainer-mini .filetype.wma,.list-view2.grid .img-precontainer-mini .filetype.webm,.list-view1.grid .img-precontainer-mini .filetype.webm{background:#31231e}.list-view2.grid .img-precontainer-mini .filetype.mp3,.list-view1.grid .img-precontainer-mini .filetype.mp3,.list-view2.grid .img-precontainer-mini .filetype.m4a,.list-view1.grid .img-precontainer-mini .filetype.m4a,.list-view2.grid .img-precontainer-mini .filetype.ac3,.list-view1.grid .img-precontainer-mini .filetype.ac3,.list-view2.grid .img-precontainer-mini .filetype.aiff,.list-view1.grid .img-precontainer-mini .filetype.aiff,.list-view2.grid .img-precontainer-mini .filetype.mid,.list-view1.grid .img-precontainer-mini .filetype.mid,.list-view2.grid .img-precontainer-mini .filetype.ogg,.list-view1.grid .img-precontainer-mini .filetype.ogg,.list-view2.grid .img-precontainer-mini .filetype.wav,.list-view1.grid .img-precontainer-mini .filetype.wav{background:#9f008b}.list-view2.grid .img-precontainer-mini .filetype.odt,.list-view1.grid .img-precontainer-mini .filetype.odt,.list-view2.grid .img-precontainer-mini .filetype.ots,.list-view1.grid .img-precontainer-mini .filetype.ots,.list-view2.grid .img-precontainer-mini .filetype.ott,.list-view1.grid .img-precontainer-mini .filetype.ott,.list-view2.grid .img-precontainer-mini .filetype.odb,.list-view1.grid .img-precontainer-mini .filetype.odb,.list-view2.grid .img-precontainer-mini .filetype.odg,.list-view1.grid .img-precontainer-mini .filetype.odg,.list-view2.grid .img-precontainer-mini .filetype.otp,.list-view1.grid .img-precontainer-mini .filetype.otp,.list-view2.grid .img-precontainer-mini .filetype.otg,.list-view1.grid .img-precontainer-mini .filetype.otg,.list-view2.grid .img-precontainer-mini .filetype.odf,.list-view1.grid .img-precontainer-mini .filetype.odf,.list-view2.grid .img-precontainer-mini .filetype.ods,.list-view1.grid .img-precontainer-mini .filetype.ods,.list-view2.grid .img-precontainer-mini .filetype.odp,.list-view1.grid .img-precontainer-mini .filetype.odp{background:#367bbe}.list-view2.grid .img-precontainer-mini .filetype.jpg,.list-view1.grid .img-precontainer-mini .filetype.jpg,.list-view2.grid .img-precontainer-mini .filetype.jpeg,.list-view1.grid .img-precontainer-mini .filetype.jpeg,.list-view2.grid .img-precontainer-mini .filetype.png,.list-view1.grid .img-precontainer-mini .filetype.png,.list-view2.grid .img-precontainer-mini .filetype.bmp,.list-view1.grid .img-precontainer-mini .filetype.bmp,.list-view2.grid .img-precontainer-mini .filetype.gif,.list-view1.grid .img-precontainer-mini .filetype.gif,.list-view2.grid .img-precontainer-mini .filetype.tiff,.list-view1.grid .img-precontainer-mini .filetype.tiff,.list-view2.grid .img-precontainer-mini .filetype.svg,.list-view1.grid .img-precontainer-mini .filetype.svg{background:#cfa554}.list-view2.grid .img-precontainer-mini .filetype.txt,.list-view1.grid .img-precontainer-mini .filetype.txt,.list-view2.grid .img-precontainer-mini .filetype.sql,.list-view1.grid .img-precontainer-mini .filetype.sql,.list-view2.grid .img-precontainer-mini .filetype.xml,.list-view1.grid .img-precontainer-mini .filetype.xml,.list-view2.grid .img-precontainer-mini .filetype.log,.list-view1.grid .img-precontainer-mini .filetype.log,.list-view2.grid .img-precontainer-mini .filetype.iso,.list-view1.grid .img-precontainer-mini .filetype.iso,.list-view2.grid .img-precontainer-mini .filetype.dmg,.list-view1.grid .img-precontainer-mini .filetype.dmg{background:#cacaca}.list-view2.grid .img-precontainer-mini .filetype.ade,.list-view1.grid .img-precontainer-mini .filetype.ade,.list-view2.grid .img-precontainer-mini .filetype.adp,.list-view1.grid .img-precontainer-mini .filetype.adp,.list-view2.grid .img-precontainer-mini .filetype.mdb,.list-view1.grid .img-precontainer-mini .filetype.mdb,.list-view2.grid .img-precontainer-mini .filetype.accdb,.list-view1.grid .img-precontainer-mini .filetype.accdb{background:#b61c19} \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less deleted file mode 100644 index 74d25b12..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/css/style.less +++ /dev/null @@ -1,926 +0,0 @@ -*, *:after, *:before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } -body, html { - font-family: 'Open Sans', sans-serif; - font-size: 100%; padding: 0; margin: 0;} -body{ - padding-top: 32px; - font-weight:200; - background:#ececec; - overflow: -moz-scrollbars-vertical; -} - -#qLpercentage{ - font-family: 'Open Sans', sans-serif; - font-size: 40px; - line-height: 40px; - color:#bbbbbb; - font-weight: 200; - height: 60px; - -webkit-border-radius: 10px; - border-radius: 10px; - padding: 10px; - text-shadow: 1px 1px 2px #ffffff; - filter: dropshadow(color=#ffffff, offx=1, offy=1); -} -#qLbar{ - /* IE9 SVG, needs conditional override of 'filter' to 'none' */ - background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzdhN2E3YSIgc3RvcC1vcGFjaXR5PSIwLjQiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==); - background: -moz-linear-gradient(top, rgba(122,122,122,0.4) 0%, rgba(122,122,122,0.4) 100%); /* FF3.6+ */ - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(122,122,122,0.4)), color-stop(100%,rgba(122,122,122,0.4))); /* Chrome,Safari4+ */ - background: -webkit-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Chrome10+,Safari5.1+ */ - background: -o-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* Opera 11.10+ */ - background: -ms-linear-gradient(top, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* IE10+ */ - background: linear-gradient(to bottom, rgba(122,122,122,0.4) 0%,rgba(122,122,122,0.4) 100%); /* W3C */ - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#667a7a7a', endColorstr='#667a7a7a',GradientType=0 ); /* IE6-8 */ - - z-index:200; - margin:0px; - overflow: hidden; -} - - -[class^="rficon-"],[class*=" rficon-"] { - display:inline-block; - width:16px; - height:16px; - margin-top:1px; - *margin-right:.3em; - line-height:16px; - vertical-align:text-top; - background-position: 0 0; - background-repeat:no-repeat -} - -.rficon-clipboard-apply { - background-image:url(../img/clipboard_apply.png); -} - -.rficon-clipboard-clear { - background-image:url(../img/clipboard_clear.png); -} - -.btn{ - -webkit-border-radius: 0px; - border-radius: 0px; -} -.container-fluid{padding-right:0 !important;margin-top:10px !important;} -.img-precontainer{ - margin: auto; - width: 100%; - text-align: center; - background: white; - border:none; -} -.img-container{ - height: 91px; - width: 122px; - padding: 0px; - border:none; - overflow: hidden; - display: table-cell; - text-align: center; - vertical-align: middle; - margin: auto; -} -ul.breadcrumb{ - margin-bottom:5px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 4px; - padding-top: 6px; - background: #f0f0f0; - -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - box-shadow: 0 1px 4px rgba(0,0,0,0.065); - border-bottom: 1px solid #bbbbbb; - - .pull-left i{ margin-top:2px;} -} - -.alert { - padding: 8px 35px 8px 14px; - margin-bottom:2px; - border: 1px solid #aaaaaa; - color:#666666; - font-weight: 200; - font-size: 13px; - -webkit-border-radius: 0px; - border-radius: 0px; - background: white; -} -.img-container * ,.img-container-mini * { - vertical-align: middle; -} -#help{ - display: none; -} - -/*\*//*/ -.img-container,.img-container-mini { - display: block; -} -.img-container span, .img-container-mini span { - display: inline-block; - height: 100%; - width: 1px; -} -/**/ - -iframe{ - overflow: auto; - -webkit-overflow-scrolling:touch; -} -.upload-tabbable{ - margin-left: 5px; - margin-right: 5px; - - .upload-help{ - font-size: 11px; - font-weight: 200; - color: #777; - text-shadow: 0 1px 0 #fff; - text-align: center; - } - .nav{ - margin:0px; - li a{ - font-size: 13px; - font-weight: 200; - color: #777; - text-shadow: 0 1px 0 #fff; - } - } - .tab-content{ - padding: 5px; - border-bottom: 1px solid #dddddd; - border-left: 1px solid #dddddd; - border-rigth: 1px solid #dddddd; - background: white; - margin-bottom: 5px; - } -} -input#filter-input{ - margin:0px; - width: 84px; - height: 26px; - vertical-align: bottom; - margin-bottom: 2px; - -webkit-border-radius: 0; - border-radius: 0; - font-size: 12px; - font-weight:200; - position:relative; - left:1px; -} - -.qq-uploader .span9{margin-left:14px !important;width:690px !important;} -.space10{ clear:both; height:10px; } - -h4{ font-size:12px; font-weight:200; margin: 0px; text-align: center; padding: 0px; margin-top:6px; line-height: 18px; } -h3{ font-size:14px; font-weight:200;} -.boxes{ border:1px solid #CCCCCC; word-wrap: break-word; background:white; --webkit-box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2);box-shadow: 1px 1px 2px 0px rgba(0, 0, 0, 0.2); min-height:115px; -text-align: center;} -.container-fluid{ padding:0px 10px !important;} - -body .avpw .avpw_primary_button, -body .avpw .avpw_primary_button:link, -body .avpw .avpw_primary_button:visited, -body .avpw .avpw_primary_button:active { - background-color: #999999; - color: #ffffff; - background-image:none; - border:none; -} - -body .avpw .avpw_primary_button:hover{ - border:none; - background-color: #666666; -} - -.uploader{ - position:fixed; - top:50px; - left:14px; - margin:auto; - width:100%; - z-index:9999; - overflow: hidden; - background:#eeeeee; - padding-top:20px; - border:1px solid #cccccc; - display:none; - -webkit-box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5); - box-shadow: 0px 0px 10px 0px rgba(1, 1, 1, 0.5); -} -.download-form{ - margin-bottom:25px; -} - -.grid li i{ - margin-left:2px; - margin-right: 2px; - z-index:0; -} -.box,.boxx{ - text-align: center; - word-wrap: break-word; - vertical-align: top; - text-align: left; - position: relative; - border: none; - box-shadow: none; - z-index: 100; - padding: 4px; -} -.box .btn{ - width: 100%; - background: none; - box-shadow: none; - border:none; - z-index: 200; -} -.navbar{ - margin-bottom: 0px; - border-bottom: 1px solid #bbbbbb; - .navbar-inner{ - border: none; - min-height: 35px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 2px; - margin: 0px; - padding-right: 8px; - padding-left: 8px; - .container-fluid{ - margin: 0px; - margin-top: 0px !important; - padding: 0px; - .brand{ - display: none; - } - .filters span{ - margin-top:0px; - font-size:13px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff; } - } - } -} - -ul.sorting{ - position: absolute; - left: -25px; - top:20px; - min-width: 0px; - background: #eeeeee; - li a:hover{ - background: #aaaaaa; - } -} -.btn-group .dropdown-toggle.sorting-btn{ - background: none; - border: none; - box-shadow: none; - position: relative; - -webkit-box-shadow:none; - top:-5px; - font-size: 13px; -} -.btn-group .dropdown-toggle.sorting-btn:hover{ - background: none; - border: none; - box-shadow: none; - -webkit-box-shadow:none; -} -ul.sorting.dropdown-menu>li>a{ - font-size: 12px; - text-shadow: none; - &.ascending{ - background-image: url(../img/down.png); - background-repeat: no-repeat; - background-position: 6px 8px; - } - &.descending{ - background-image: url(../img/up.png); - background-repeat: no-repeat; - background-position: 6px 8px; - } -} - -.sorter-container{ - a.sorter{ - color:black; - } - - a.ascending{ - padding-left:9px; - background-image: url(../img/down.png); - background-repeat: no-repeat; - background-position: 0px 3px; - } - a.descending{ - padding-left:9px; - background-image: url(../img/up.png); - background-repeat: no-repeat; - background-position: 0px 4px; - } - margin-top:5px; - margin-bottom:0px; - -webkit-border-radius: 0px; - border-radius: 0px; - padding-bottom: 4px; - padding-top: 6px; - -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.065); - box-shadow: 0 1px 4px rgba(0,0,0,0.065); - background-color: #f5f5f5; - position: relative; - border-bottom: 1px solid #bbbbbb; - height: 24px; - .img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{ - display: block;position: absolute; - top: 0px; - z-index: 100; - -webkit-box-shadow: none; - box-shadow: none; - text-align: left; - font-size: 13px; - margin-top: 1px; - color:#999999; - } - .file-operations{ - width: 110px; - right:0px; - } - .img-dimension{ - width: 65px; - right: 123px; - } - .file-date{ - width: 70px; - right: 188px; - } - .file-size{ - width: 55px; - right: 258px; - } - - .file-extension{ - width: 40px; - right: 313px; - } - - .file-name{ - width: 50px; - left: 52px; - } -} - -.img-dimension,.file-date,.file-size,.file-extension,.file-name,.file-operations{ - font-size:12px; - font-weight:200; - color:#777;text-shadow:0 1px 0 #fff; - display: none; -} - - -.view-controller{ - text-align: left; - .btn-group>.btn:first-child,.btn-group>.btn:last-child{ - -webkit-border-radius: 0px; - border-radius: 0px; - } -} - -.navbar .filters .btn { - margin-bottom: 2px; - padding-top:2px; - padding-bottom:2px; - padding-left: 8px; - padding-right: 8px; - margin-top:5px; -} -.filters .types{ - text-align: right; -} - - -@media(max-width:780px){ - #view2{ - display: none; - } -} -@media(max-width:839px){ - body{ - padding-top: 0px; - } - .filters .types{ - text-align: left; - } - .navbar .navbar-inner .container-fluid .brand{ - display: block; - } - .navbar .navbar-inner{ - padding-bottom: 4px; - } - .filters{ - div.span3.half,div.half.span6{ - float:none; - width:100%; - - } - } - - .container-fluid{ - margin:0px !important; - padding: 0px; - } - #qLbar{ - height:50px !important; - } -} -@media(min-width:400px) and (max-width:839px){ - .filters .row-fluid .half{ - width:48.61878453038674%;*width:48.56559304102504%; float:left; - } -} -.tooltip.in{ - z-index: 10000; - opacity:1; - filter:alpha(opacity=1); - font-weight: bold; -} - -.tooltip{ - font-weight: bold; - z-index: 10000; -} - -/* GRID */ -.grid { - padding: 0px 0px; - margin: 0 auto; - list-style: none; - -webkit-overflow-scrolling: touch; -} - -.grid li { - display: inline-block; - width: 124px; - border:none; - margin: 4px; - margin-bottom:8px; - padding: 0px; - vertical-align: top; -} - -.grid figure { - margin: 0; - position: relative; - display: block; - width: 122px; - margin: auto; - - &:hover{ background: #e0e0e0 !important;} -} -.list-view1.grid li{ - width:100%; - figure{ - width:100%; - } -} - -.grid figcaption { - text-align: center; - padding: 2px; - padding-top: 8px; - color: white; - height: 30px; - width: 122px; - margin-left:0px; - margin-right: 0px; - position: absolute; - top: auto; - bottom: 0; - -webkit-box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5); - box-shadow: inset 0px 0px 8px 0px rgba(41, 41, 41, 0.5); - - a{ - margin: 0px; - padding: 3px; - } - h3 { - margin: 0; - padding: 0; - color: #fff; - } -} - - -.grid h4{ - text-align: center; - color: black; - padding: 0px; - margin-bottom: 4px; - margin-top: 4px; -} - - -/* Individual Caption Styles */ - - -/* Caption Style 2 */ - -.grid figure .box { - box-sizing: content-box; -} - -.list-view0.grid,.list-view1.grid,.list-view2.grid{ - figure{ - .box{ - max-width: 100%; - display: block; - position: relative; - overflow: hidden; - z-index: 1; - h4.ellipsis{ - height:18px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - h4{ - z-index: 1; - a{ - z-index: 1; - } - } - } - } - - .selected{ - -webkit-box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25); - box-shadow: 0px 0px 10px 5px rgba(0, 0, 0, 0.25); - - //border: 1px solid #777777; - } -} - -.no-touch .list-view0 figure .box{ - z-index: 1; - -webkit-transition: -webkit-transform 0.3s; - -moz-transition: -moz-transform 0.3s; - transition: transform 0.3s; -} -.ui-state-highlight{ - border:1px solid red; -} - -.no-touch .list-view0 figure:hover .box, -.no-touch .list-view0 figure.cs-hover .box { - -webkit-box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5); - box-shadow: 0px 0px 4px 0px rgba(1, 1, 1, 0.5); - -webkit-transform: translateY(-26px); - -moz-transform: translateY(-26px); - -ms-transform: translateY(-26px); - transform: translateY(-26px); -} -.list-view0 figure:hover .box.no-effect, -.list-view0 figure.cs-hover .box.no-effect,.no-effect{ - - -webkit-box-shadow: none; - box-shadow: none; - -webkit-transform: none; - -moz-transform: none; - -ms-transform: none; - transform: none; -} - - -.list-view0 .img-precontainer-mini{ - display: none; - background: none; -} -a,a:hover{ - color:black; - text-decoration: none; -} - -.back-directory{ - .img-precontainer,.img-precontainer-mini,.box{ - background: none; - } -} -form{ - margin:0px; - padding: 0px; -} -.modal-body{ - form,input{ - margin:0px; - } -} - -.modal-header h3{ - font-weight: 300; - font-size: 20px; -} - -/* LIST VIEW */ -.list-view1.sorter-container{ - display: block; -} - -.list-view0.sorter-container, .list-view2.sorter-container{ - display: none; -} -.list-view0.grid{ - .img-precontainer{ - .img-container{ - - img{ - max-width:122px !important; - max-height:91px !important; - } - img.icon{ - width: 122px; - margin-top:0px; - } - } - .filetype{ - position:absolute; - top:0px; - width:120px; - text-align:center; - color:white; - font-size: 13px; - line-height: 22px; - - } - } - .cover{ -/* IE9 SVG, needs conditional override of 'filter' to 'none' */ -background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjI1Ii8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmZmZmZmYiIHN0b3Atb3BhY2l0eT0iMC4yNSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+); -background: -moz-linear-gradient(top, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.25) 100%); /* FF3.6+ */ -background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.25)), color-stop(100%,rgba(255,255,255,0.25))); /* Chrome,Safari4+ */ -background: -webkit-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Chrome10+,Safari5.1+ */ -background: -o-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Opera 11.10+ */ -background: -ms-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* IE10+ */ -background: linear-gradient(to bottom, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* W3C */ -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#40ffffff', endColorstr='#40ffffff',GradientType=0 ); /* IE6-8 */ - - - width: 122px; - position:absolute; - top:22px; - right:0px; - height: 69px; - } - .box{ - background: white; - } - .directory{ - background: #dddddd; - } - figure.back-directory{ - .directory{ - background: #bbbbbb; - } - } - - figcaption{ - background:#ffffff; - } -} - -.list-view1.grid , .list-view2.grid { - li{ - margin: 0px; - &.back{ - figure.back-directory{ - height: 34px; - } - } - } - li:nth-child(odd) figure {background: #f9f9f9; } - li:nth-child(odd) figure.directory {background: #eaeaea; } - - li figure{ - border-bottom: 1px solid #cccccc; - background: white; - &.back-directory{ - background: #bbbbbb; - .box{ - background: none; - } - } - &.directory{ - background: #efefef; - box{ - padding: 0px; - min-height: 10px; - } - } - .box{ - h4{ - padding-top:1px; - font-size: 13px; - text-align: left; - } - margin-left: 50px; - -webkit-transition: none; - -moz-transition: none; - transition: none; - } - } - .img-precontainer-mini{ - display: block; - position: absolute; - width: 45px; - height: 34px; - overflow: hidden; - text-align: center; - img{ - height: 34px; - } - .filetype{ - position:absolute; - top:5px; - text-align: center; - left:5px; - padding:1px 2px; - font-size: 13px; - line-height: 22px; - width:34px; - height: 24px; - color:white; - background: #333333; - } - } - .cover{ - display: none; - } - .img-container-mini{ - width: 45px; - height: 34px; - border:none; - overflow: hidden; - display: table-cell; - text-align: center; - vertical-align: middle; - margin: auto; - - } - .img-precontainer-mini.original-thumb{ - padding: 0px; - img{ - width: auto; - margin: 0px; - height: 34px; - } - - img.original{ - width: auto; - width: auto; - height: auto; - } - } - - .img-precontainer{ - display: none; - } - - figcaption{ - background:none; - width: 120px; - position: absolute; - right: 0px; - top: 0px; - z-index: 1; - bottom: 0; - -webkit-box-shadow: none; - box-shadow: none; - text-align: right; - - } - .selected{ - -webkit-box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2); - box-shadow: 0px 0px 3px 2px rgba(0, 0, 0, 0.2); - } -} - -.list-view1.grid{ - .img-dimension,.file-date,.file-size,.file-extension{ - overflow: hidden; - display: block;position: absolute; - top: 0px; - z-index: 1; - -webkit-box-shadow: none; - box-shadow: none; - text-align: left; - margin-top:7px; - } - .img-dimension{ - width: 65px; - right: 120px; - } - .file-date{ - width: 70px; - right: 185px; - } - .file-size{ - width: 55px; - right: 255px; - } - .file-extension{ - width: 40px; - right: 310px; - } - figure .box{ - padding-right: 352px; - } -} -.list-view2.grid{ - figure{ - .box{ - padding-right: 115px; - } - } -} - - -@media(max-width:610px){ - .list-view1.grid figure{ - .box{ - padding-right: 312px; - } - .file-extension{ - display: none; - } - } - .sorter-container .file-extension{ - display: none; - } -} - -@media(max-width:565px){ - .list-view1.grid figure{ - .box{ - padding-right: 257px; - } - .file-size{ - display: none; - } - } - .sorter-container .file-size{ - display: none; - } -} - -@media(max-width:495px){ - .list-view1.grid figure{ - .box{ - padding-right: 187px; - } - .file-date{ - display: none; - } - } - .sorter-container .file-date{ - display: none; - } -} - -@media(max-width:430px){ - .list-view1.grid figure{ - .box{ - padding-right: 115px; - } - .img-dimension{ - display: none; - } - } - .sorter-container .img-dimension{ - display: none; - } - .breadcrumb{ - margin-left:0px; - margin-right:0px; - } -} - -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.pdf{ background:#CB0011; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.css{ background:#D10698; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ai{ background:#D6772F; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.psd{ background:#0960A4; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.html,&.xhtml{ background:#035BC4; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.fla,&.flv{ background:#CF302E; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ppt,&.pptx{ background:#DA5B00; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.xls,&.xlsx,&.css{ background:#1A712C; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rts,&.doc,&.docx{ background:#002093; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.rar,&.zip,&.gzip{ background:#FE9221; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp4,&.mpeg,&.mov,&.avi,&.mpg,&.wma,&.webm{ background:#31231E; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.mp3,&.m4a,&.ac3,&.aiff,&.mid,&.ogg,&.wav{ background:#9F008B; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.odt,&.ots,&.ott,&.odb,&.odg,&.otp,&.otg,&.odf,&.ods,&.odp{ background:#367BBE; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.jpg,&.jpeg,&.png,&.bmp,&.gif,&.tiff,&.svg{ background:#CFA554; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.txt,&.sql,&.xml,&.log,&.iso,&.dmg{ background:#CACACA; }}} -.list-view2.grid,.list-view1.grid{.img-precontainer-mini .filetype{&.ade,&.adp,&.mdb,&.accdb{ background:#B61C19; }}} diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php deleted file mode 100644 index 75563e40..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/dialog.php +++ /dev/null @@ -1,901 +0,0 @@ -console.log('The ".$lang." language file is not readable! Falling back...');"; - } - } - -// add lang file to session for easy include - $_SESSION['RF']['language_file'] = $language_file; - require_once $language_file; - - if(!isset($_GET['type'])) $_GET['type']=0; - if(!isset($_GET['field_id'])) $_GET['field_id']=''; - - $field_id=isset($_GET['field_id']) ? fix_get_params($_GET['field_id']) : ''; - $type_param=fix_get_params($_GET['type']); - - $get_params = http_build_query(array( - 'type' => $type_param, - 'lang' => $lang, - 'popup' => $popup, - 'field_id' => $field_id, - 'akey' => (isset($_GET['akey']) && $_GET['akey'] != '' ? $_GET['akey'] : 'key'), - 'fldr' => '' - )); - ?> - - - - - - - - - Responsive FileManager - - - - - - - console.log("Error: Spritemap not found!");'; - // exit(); - } - } - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " /> - - " /> - - - - - - - - - - - - - - - - - " /> - - - -
    -
    -
    -
    - - -
    -
    - -
    - - -
    - :
    - - - - - - - - - - -
    -
    - -
    -
    -
    -
    - -
    -
    -
    - -
    - - - -
    - - $file){ - if($file==".") $current_folder=array('file'=>$file); - elseif($file=="..") $prev_folder=array('file'=>$file); - elseif(is_dir($current_path.$rfm_subfolder.$subdir.$file)){ - $date=filemtime($current_path.$rfm_subfolder.$subdir. $file); - $size=foldersize($current_path.$rfm_subfolder.$subdir. $file); - $file_ext=lang_Type_dir; - $sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext); - }else{ - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - $date=filemtime($file_path); - $size=filesize($file_path); - $file_ext = substr(strrchr($file,'.'),1); - $sorted[$k]=array('file'=>$file,'date'=>$date,'size'=>$size,'extension'=>$file_ext); - } - } - - function filenameSort($x, $y) { - return $x['file'] < $y['file']; - } - function dateSort($x, $y) { - return $x['date'] < $y['date']; - } - function sizeSort($x, $y) { - return $x['size'] - $y['size']; - } - function extensionSort($x, $y) { - return $x['extension'] < $y['extension']; - } - - switch($sort_by){ - case 'name': - usort($sorted, 'filenameSort'); - break; - case 'date': - usort($sorted, 'dateSort'); - break; - case 'size': - usort($sorted, 'sizeSort'); - break; - case 'extension': - usort($sorted, 'extensionSort'); - break; - default: - break; - - } - - if($descending){ - $sorted=array_reverse($sorted); - } - - $files=array_merge(array($prev_folder),array($current_folder),$sorted); - ?> - - - - - - - - - -
    -
    - -
    -
    There is an error! The upload folder there isn't. Check your config.php file.
    - -

    - -
    - - - - - - - - -
      " id="main-item-container"> - -
    • >
      directory" data-type=""> - "> -
      -
      - .jpg" alt="folder" /> -
      -
      -
      -
      - - .png" alt="folder" /> -
      -
      - -
      -

      -
      -
      - - - -
      -

      ">">

      -
      - - - - -
      -
      -
      -
      - " title="" data-path="" data-thumb=""> - - " title="" data-confirm="" data-path="" data-thumb=""> - - -
      - -
      -
    • - $file_array) { - $file=$file_array['file']; - - if($file == '.' || $file == '..' || is_dir($current_path.$rfm_subfolder.$subdir.$file) || in_array($file, $hidden_files) || !in_array(fix_strtolower($file_array['extension']), $ext) || ($filter!='' && strpos($file,$filter)===false)) - continue; - - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - //check if file have illegal caracter - - $filename=substr($file, 0, '-' . (strlen($file_array['extension']) + 1)); - - if($file!=fix_filename($file,$transliteration)){ - $file1=fix_filename($file,$transliteration); - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - if(file_exists($file_path1)){ - $i = 1; - $info=pathinfo($file1); - while(file_exists($current_path.$rfm_subfolder.$subdir.$info['filename'].".[".$i."].".$info['extension'])) { - $i++; - } - $file1=$info['filename'].".[".$i."].".$info['extension']; - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - } - - $filename=substr($file1, 0, '-' . (strlen($file_array['extension']) + 1)); - rename_file($file_path,fix_filename($filename,$transliteration),$transliteration); - $file=$file1; - $file_array['extension']=fix_filename($file_array['extension'],$transliteration); - $file_path=$file_path1; - } - - $is_img=false; - $is_video=false; - $is_audio=false; - $show_original=false; - $show_original_mini=false; - $mini_src=""; - $src_thumb=""; - $src_thumb_url=""; - $extension_lower=fix_strtolower($file_array['extension']); - if(in_array($extension_lower, $ext_img)){ - $src = $base_url . $cur_dir . rawurlencode($file); - $mini_src = $src_thumb = $thumbs_path.$subdir. $file; - $src_thumb_url = $base_url . $cur_thumbs_dir.$subdir. $file; - $mini_src_url = $base_url .$thumbs_dir.$subdir. $file; - //add in thumbs folder if not exist - if(!file_exists($src_thumb)){ - try { - create_img_gd($file_path, $src_thumb, 122, 91); - new_thumbnails_creation($current_path.$rfm_subfolder.$subdir,$file_path,$file,$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height); - } catch (Exception $e) { - $src_thumb=$mini_src=$src_thumb_url=""; - } - } - $is_img=true; - //check if is smaller than thumb - list($img_width, $img_height, $img_type, $attr)=getimagesize($file_path); - if($img_width<122 && $img_height<91){ - $src_thumb=$current_path.$rfm_subfolder.$subdir.$file; - $show_original=true; - } - - if($img_width<45 && $img_height<38){ - $mini_src=$current_path.$rfm_subfolder.$subdir.$file; - $mini_src_url= $base_url.$upload_dir.$rfm_subfolder.$subdir.$file; - $show_original_mini=true; - } - } - - $is_icon_thumb=false; - $is_icon_thumb_mini=false; - $no_thumb=false; - if($src_thumb==""){ - $no_thumb=true; - if(file_exists('img/'.$icon_theme.'/'.$extension_lower.".jpg")){ - $src_thumb ='img/'.$icon_theme.'/'.$extension_lower.".jpg"; - }else{ - $src_thumb = "img/".$icon_theme."/default.jpg"; - } - - $src_thumb_url = $base_url . $filemanager_dir . $src_thumb; - - $is_icon_thumb=true; - } - if($mini_src==""){ - $is_icon_thumb_mini=false; - } - - $class_ext=0; - if (in_array($extension_lower, $ext_video)) { - $class_ext = 4; - $is_video=true; - }elseif (in_array($extension_lower, $ext_img)) { - $class_ext = 2; - }elseif (in_array($extension_lower, $ext_music)) { - $class_ext = 5; - $is_audio=true; - }elseif (in_array($extension_lower, $ext_misc)) { - $class_ext = 3; - }else{ - $class_ext = 1; - } - if((!($_GET['type']==1 && !$is_img) && !(($_GET['type']==3 && !$is_video) && ($_GET['type']==3 && !$is_audio))) && $class_ext>0){ - ?> -
    • "> - -
      -
      -
      - - <?php echo $filename." class=" " src=""> -
      -
      -
      -
      ">
      -
      - - - <?php echo $filename." class=" " src=""> - -
      -
      - -
      - -
      -
      -

      "> -

      -
      - - - - -
      -
      -
      -
      -
      -
      - - - - - - - - " - title="" data-url="ajax_calls.php?action=media_preview&title=&file=" - href="javascript:void('');" > - - - - " title="" data-path="" data-thumb=""> - - - " title="" data-confirm="" data-path="" data-thumb=""> - - -
      -
      -
      -
    • -
    - - -
    -
    - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php deleted file mode 100644 index 5f924283..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/execute.php +++ /dev/null @@ -1,280 +0,0 @@ -$path) - { - if ($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - - if (file_exists($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension'])) - { - unlink($info['dirname']."/".$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension']); - } - } - } - - if ($fixed_image_creation) - { - foreach($fixed_path_from_filemanager as $k=>$path) - { - if ($path!="" && $path[strlen($path)-1] != "/") $path.="/"; - - $base_dir=$path.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - unlink($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension']); - } - } - } - } - break; - case 'delete_folder': - if ($delete_folders){ - if (is_dir($path_thumb)) - { - deleteDir($path_thumb); - } - - if (is_dir($path)) - { - deleteDir($path); - if ($fixed_image_creation) - { - foreach($fixed_path_from_filemanager as $k=>$paths){ - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir=$paths.substr_replace($path, '', 0, strlen($current_path)); - if (is_dir($base_dir)) deleteDir($base_dir); - } - } - } - } - break; - case 'create_folder': - if ($create_folders) - { - create_folder(fix_path($path,$transliteration),fix_path($path_thumb,$transliteration)); - } - break; - case 'rename_folder': - if ($rename_folders){ - $name=fix_filename($name,$transliteration); - $name=str_replace('.','',$name); - - if (!empty($name)){ - if (!rename_folder($path,$name,$transliteration)) die(lang_Rename_existing_folder); - - rename_folder($path_thumb,$name,$transliteration); - if ($fixed_image_creation){ - foreach($fixed_path_from_filemanager as $k=>$paths){ - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir=$paths.substr_replace($path, '', 0, strlen($current_path)); - rename_folder($base_dir,$name,$transliteration); - } - } - } - else { - die(lang_Empty_name); - } - } - break; - case 'rename_file': - if ($rename_files){ - $name=fix_filename($name,$transliteration); - if (!empty($name)) - { - if (!rename_file($path,$name,$transliteration)) die(lang_Rename_existing_file); - - rename_file($path_thumb,$name,$transliteration); - - if ($fixed_image_creation) - { - $info=pathinfo($path); - - foreach($fixed_path_from_filemanager as $k=>$paths) - { - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.="/"; - - $base_dir = $paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - rename_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k],$transliteration); - } - } - } - } - else { - die(lang_Empty_name); - } - } - break; - case 'duplicate_file': - if ($duplicate_files) - { - $name = fix_filename($name,$transliteration); - if (!empty($name)) - { - if (!duplicate_file($path,$name)) die(lang_Rename_existing_file); - - duplicate_file($path_thumb,$name); - - if ($fixed_image_creation) - { - $info=pathinfo($path); - foreach($fixed_path_from_filemanager as $k=>$paths) - { - if ($paths!="" && $paths[strlen($paths)-1] != "/") $paths.= "/"; - - $base_dir=$paths.substr_replace($info['dirname']."/", '', 0, strlen($current_path)); - - if (file_exists($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'])) - { - duplicate_file($base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'],$fixed_image_creation_name_to_prepend[$k].$name.$fixed_image_creation_to_append[$k]); - } - } - } - } - else - { - die(lang_Empty_name); - } - } - break; - case 'paste_clipboard': - if ( ! isset($_SESSION['RF']['clipboard_action'], $_SESSION['RF']['clipboard']['path'], $_SESSION['RF']['clipboard']['path_thumb']) - || $_SESSION['RF']['clipboard_action'] == '' - || $_SESSION['RF']['clipboard']['path'] == '' - || $_SESSION['RF']['clipboard']['path_thumb'] == '') - { - die(); - } - - $action = $_SESSION['RF']['clipboard_action']; - $data = $_SESSION['RF']['clipboard']; - $data['path'] = $current_path.$data['path']; - $pinfo = pathinfo($data['path']); - - // user wants to paste to the same dir. nothing to do here... - if ($pinfo['dirname'] == rtrim($path, '/')) { - die(); - } - - // user wants to paste folder to it's own sub folder.. baaaah. - if (is_dir($data['path']) && strpos($path, $data['path']) !== FALSE){ - die(); - } - - // something terribly gone wrong - if ($action != 'copy' && $action != 'cut'){ - die('no action'); - } - - // check for writability - if (is_really_writable($path) === FALSE || is_really_writable($path_thumb) === FALSE){ - die($path.'--'.$path_thumb.'--'.lang_Dir_No_Write); - } - - // check if server disables copy or rename - if (is_function_callable(($action == 'copy' ? 'copy' : 'rename')) === FALSE){ - die(sprintf(lang_Function_Disabled, ($action == 'copy' ? lcfirst(lang_Copy) : lcfirst(lang_Cut)))); - } - - if ($action == 'copy') - { - rcopy($data['path'], $path); - rcopy($data['path_thumb'], $path_thumb); - } - elseif ($action == 'cut') - { - rrename($data['path'], $path); - rrename($data['path_thumb'], $path_thumb); - - // cleanup - if (is_dir($data['path']) === TRUE){ - rrename_after_cleaner($data['path']); - rrename_after_cleaner($data['path_thumb']); - } - } - - // cleanup - $_SESSION['RF']['clipboard']['path'] = NULL; - $_SESSION['RF']['clipboard']['path_thumb'] = NULL; - $_SESSION['RF']['clipboard_action'] = NULL; - - break; - default: - die('wrong action'); - } -} - -?> \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php deleted file mode 100644 index 5edcf481..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/force_download.php +++ /dev/null @@ -1,30 +0,0 @@ - \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png deleted file mode 100644 index 84a0447b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_apply.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png deleted file mode 100644 index 4afd1bd0..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/clipboard_clear.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png deleted file mode 100644 index f037a6f3..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/copy.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png deleted file mode 100644 index b2abe89f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/cut.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/date.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/date.png deleted file mode 100644 index 85482c9e..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/date.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png deleted file mode 100644 index cb46270f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/dimension.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png deleted file mode 100644 index 369fc46e..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/door.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/down.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/down.png deleted file mode 100644 index f975a7ac..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/down.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/download.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/download.png deleted file mode 100644 index bb054784..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/download.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png deleted file mode 100644 index 71bfac6f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/duplicate.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png deleted file mode 100644 index 658ef623..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/edit_img.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings-white.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings-white.png deleted file mode 100644 index d62c3e7f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings-white.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings.png deleted file mode 100644 index 4fe3f723..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/glyphicons-halflings.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg deleted file mode 100644 index 0b7fcdd8..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ac3.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg deleted file mode 100644 index d21abb8c..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/accdb.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ade.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ade.jpg deleted file mode 100644 index 371e0dd8..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ade.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/adp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/adp.jpg deleted file mode 100644 index 371e0dd8..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/adp.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ai.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ai.jpg deleted file mode 100644 index 19447484..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ai.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg deleted file mode 100644 index 774905c6..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/aiff.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg deleted file mode 100644 index 2c57cb7f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/avi.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/bmp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/bmp.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/bmp.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/css.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/css.jpg deleted file mode 100644 index e1673b07..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/css.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/csv.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/csv.jpg deleted file mode 100644 index 0cf4076c..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/csv.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/default.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/default.jpg deleted file mode 100644 index 5d1f4235..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/default.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/dmg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/dmg.jpg deleted file mode 100644 index 1be5ebba..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/dmg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg deleted file mode 100644 index d9ebcf8a..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/doc.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg deleted file mode 100644 index d9ebcf8a..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/docx.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico deleted file mode 100644 index 73837074..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/favicon.ico and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg deleted file mode 100644 index f7033678..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/fla.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/flv.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/flv.jpg deleted file mode 100644 index 6e5f8598..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/flv.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.jpg deleted file mode 100644 index d7c040dd..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.png deleted file mode 100644 index 1fa946e2..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.jpg deleted file mode 100644 index eeffc572..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.png deleted file mode 100644 index de3c8a65..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/folder_back.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gif.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gz.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gz.jpg deleted file mode 100644 index 950cad38..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/gz.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg deleted file mode 100644 index b915c599..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/html.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/iso.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/iso.jpg deleted file mode 100644 index 7617f594..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/iso.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpeg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpeg.jpg deleted file mode 100644 index fe3b5eeb..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpeg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/jpg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/log.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/log.jpg deleted file mode 100644 index 333a8d9b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/log.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg deleted file mode 100644 index 6be612be..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/m4a.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg deleted file mode 100644 index d21abb8c..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mdb.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mid.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mid.jpg deleted file mode 100644 index ec365f14..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mid.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mov.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mov.jpg deleted file mode 100644 index 25db2e93..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mov.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg deleted file mode 100644 index 2123bf12..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp3.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg deleted file mode 100644 index ccb45d80..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mp4.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg deleted file mode 100644 index 7a861479..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpeg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg deleted file mode 100644 index 0f1901e7..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/mpg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odb.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg deleted file mode 100644 index bf3af96f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odf.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg deleted file mode 100644 index bf3af96f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odp.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ods.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/odt.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg deleted file mode 100644 index 31050400..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ogg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg deleted file mode 100644 index 2c8f4b62..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otp.jpg deleted file mode 100644 index 72ae7531..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/otp.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ots.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg deleted file mode 100644 index 19efd722..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ott.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg deleted file mode 100644 index 2aa417eb..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pdf.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/png.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ppt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ppt.jpg deleted file mode 100644 index 967d2bb1..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/ppt.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg deleted file mode 100644 index 4a0ad1a1..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/pptx.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/psd.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/psd.jpg deleted file mode 100644 index 9365ac49..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/psd.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg deleted file mode 100644 index 950cad38..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rar.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg deleted file mode 100644 index d9ebcf8a..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/rtf.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg deleted file mode 100644 index c0556dec..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/sql.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/svg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/svg.jpg deleted file mode 100644 index d15216fc..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/svg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tar.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tar.jpg deleted file mode 100644 index 15ea7810..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tar.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tiff.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tiff.jpg deleted file mode 100644 index 679b5226..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/tiff.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg deleted file mode 100644 index 333a8d9b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/txt.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg deleted file mode 100644 index 31050400..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wav.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg deleted file mode 100644 index 2c57cb7f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/webm.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wma.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wma.jpg deleted file mode 100644 index 2c57cb7f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/wma.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xhtml.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xhtml.jpg deleted file mode 100644 index 466d818b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xhtml.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg deleted file mode 100644 index dc2ab5e7..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xls.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg deleted file mode 100644 index c8ac78f0..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xlsx.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg deleted file mode 100644 index aa8c4438..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/xml.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/zip.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/zip.jpg deleted file mode 100644 index 950cad38..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico/zip.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg deleted file mode 100644 index c89b43ca..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ac3.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/accdb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/accdb.jpg deleted file mode 100644 index 3e670adc..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/accdb.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ade.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ade.jpg deleted file mode 100644 index b07e8114..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ade.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg deleted file mode 100644 index b07e8114..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/adp.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg deleted file mode 100644 index 719a029f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ai.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg deleted file mode 100644 index 290afdda..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/aiff.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/avi.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/avi.jpg deleted file mode 100644 index 128eafd8..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/avi.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/bmp.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg deleted file mode 100644 index 0246bfd0..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/css.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg deleted file mode 100644 index c7d3aef7..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/csv.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/default.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/default.jpg deleted file mode 100644 index 433adcfb..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/default.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg deleted file mode 100644 index 43179464..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/dmg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/doc.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/doc.jpg deleted file mode 100644 index abb65ed3..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/doc.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/docx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/docx.jpg deleted file mode 100644 index 08b04b82..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/docx.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/favicon.ico b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/favicon.ico deleted file mode 100644 index 73837074..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/favicon.ico and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg deleted file mode 100644 index e2706ec7..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/fla.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/flv.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/flv.jpg deleted file mode 100644 index b35496b3..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/flv.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.jpg deleted file mode 100644 index 589791c5..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png deleted file mode 100644 index 7fad79ad..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.jpg deleted file mode 100644 index ddacf761..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png deleted file mode 100644 index de3c8a65..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/folder_back.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gif.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg deleted file mode 100644 index bd30b1cd..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/gz.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg deleted file mode 100644 index 9d7c99aa..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/html.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg deleted file mode 100644 index afb20c1e..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/iso.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg deleted file mode 100644 index 2df9299b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpeg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpg.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/jpg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg deleted file mode 100644 index 5a0a8520..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/log.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/m4a.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/m4a.jpg deleted file mode 100644 index 4eb8340b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/m4a.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mdb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mdb.jpg deleted file mode 100644 index 3e670adc..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mdb.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mid.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mid.jpg deleted file mode 100644 index 40516d6e..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mid.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg deleted file mode 100644 index 0aa7a8a9..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mov.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp3.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp3.jpg deleted file mode 100644 index fd661490..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp3.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp4.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp4.jpg deleted file mode 100644 index 0b045edf..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mp4.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpeg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpeg.jpg deleted file mode 100644 index 37293c14..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpeg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg deleted file mode 100644 index 6ca376a0..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/mpg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odb.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg deleted file mode 100644 index 3550401b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odf.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg deleted file mode 100644 index 3550401b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odp.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ods.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/odt.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg deleted file mode 100644 index e93be746..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ogg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otg.jpg deleted file mode 100644 index 4c596334..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg deleted file mode 100644 index 9cc95b3b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/otp.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ots.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ots.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ots.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg deleted file mode 100644 index a59fe46f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ott.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg deleted file mode 100644 index 44987838..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pdf.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/png.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/png.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/png.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg deleted file mode 100644 index d0d4e281..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/ppt.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg deleted file mode 100644 index 066db3fe..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/pptx.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg deleted file mode 100644 index 37e2f1a9..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/psd.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rar.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rar.jpg deleted file mode 100644 index d4878825..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rar.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg deleted file mode 100644 index abb65ed3..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/rtf.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/sql.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/sql.jpg deleted file mode 100644 index 40128438..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/sql.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg deleted file mode 100644 index 65598092..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/svg.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg deleted file mode 100644 index e875b26e..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tar.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg deleted file mode 100644 index 6648ebfe..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/tiff.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg deleted file mode 100644 index 5a0a8520..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/txt.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wav.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wav.jpg deleted file mode 100644 index e93be746..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wav.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/webm.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/webm.jpg deleted file mode 100644 index dab5433b..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/webm.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg deleted file mode 100644 index 128eafd8..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/wma.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg deleted file mode 100644 index 5c315043..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xhtml.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xls.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xls.jpg deleted file mode 100644 index 41fe930f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xls.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg deleted file mode 100644 index ed4cbbef..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xlsx.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xml.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xml.jpg deleted file mode 100644 index 2301744c..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/xml.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg deleted file mode 100644 index bd30b1cd..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/ico_dark/zip.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png deleted file mode 100644 index dfb3971d..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/info.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/label.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/label.png deleted file mode 100644 index f5b5b200..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/label.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/loading.gif b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/loading.gif deleted file mode 100644 index 6fba7760..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/loading.gif and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/logo.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/logo.png deleted file mode 100644 index 2a9a0dea..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/logo.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_add.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_add.png deleted file mode 100644 index a70de096..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_add.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_copy.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_copy.png deleted file mode 100644 index a9f31a27..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_copy.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_delete.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_delete.png deleted file mode 100644 index 7bb3d956..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_delete.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_edit.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_edit.png deleted file mode 100644 index b93e7760..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_edit.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_paste.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_paste.png deleted file mode 100644 index 5b2cbb3f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/page_white_paste.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/preview.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/preview.png deleted file mode 100644 index 07af0803..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/preview.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/processing.gif b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/processing.gif deleted file mode 100644 index 7c99504e..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/processing.gif and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png deleted file mode 100644 index 82d9f13f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/rename.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png deleted file mode 100644 index abbc7448..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/size.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png deleted file mode 100644 index d741e10f..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/sort.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_en_EN.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_en_EN.png deleted file mode 100644 index e877eea6..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_en_EN.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_hu_HU.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_hu_HU.png deleted file mode 100644 index 97e2c550..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap@2x_hu_HU.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_en_EN.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_en_EN.png deleted file mode 100644 index 9f213145..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_en_EN.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_hu_HU.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_hu_HU.png deleted file mode 100644 index b2ec8ee9..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/spritemap_hu_HU.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/storing_animation.gif b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/storing_animation.gif deleted file mode 100644 index eca3a53c..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/storing_animation.gif and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png deleted file mode 100644 index d7b3925c..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/up.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/url.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/url.png deleted file mode 100644 index e0db5519..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/url.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/zip.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/zip.png deleted file mode 100644 index 95355ce7..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/img/zip.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php deleted file mode 100644 index 81e9bcd2..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/php_image_magician.php +++ /dev/null @@ -1,3320 +0,0 @@ - resizeImage(150, 100, 0); - # $magicianObj -> saveImage('images/car_small.jpg', 100); - # - # - See end of doc for more examples - - # - # Supported file types include: jpg, png, gif, bmp, psd (read) - # - # - # - # The following functions are taken from phpThumb() [available from - # http://phpthumb.sourceforge.net], and are used with written permission - # from James Heinrich. - # - GD2BMPstring - # - GetPixelColor - # - LittleEndian2String - # - # The following functions are from Marc Hibbins and are used with written - # permission (are also under the Attribution-ShareAlike - # [http://creativecommons.org/licenses/by-sa/3.0/] license. - # - - # - # PhpPsdReader is used with written permission from Tim de Koning. - # [http://www.kingsquare.nl/phppsdreader] - # - # - # - # Modificatoin history - # Date Initials Ver Description - # 10-05-11 J.C.O 0.0 Initial build - # 01-06-11 J.C.O 0.1.1 * Added reflections - # * Added Rounded corners - # * You can now use PNG interlacing - # * Added shadow - # * Added caption box - # * Added vintage filter - # * Added dynamic image resizing (resize on the fly) - # * minor bug fixes - # 05-06-11 J.C.O 0.1.1.1 * Fixed undefined variables - # 17-06-11 J.C.O 0.1.2 * Added image_batch_class.php class - # * Minor bug fixes - # 26-07-11 J.C.O 0.1.4 * Added support for external images - # * Can now set the crop poisition - # 03-08-11 J.C.O 0.1.5 * Added reset() method to reset resource to - # original input file. - # * Added method addTextToCaptionBox() to - # simplify adding text to a caption box. - # * Added experimental writeIPTC. (not finished) - # * Added experimental readIPTC. (not finished) - # 11-08-11 J.C.O * Added initial border presets. - # 30-08-11 J.C.O * Added 'auto' crop option to crop portrait - # images near the top. - # 08-09-11 J.C.O * Added cropImage() method to allow standalone - # cropping. - # 17-09-11 J.C.O * Added setCropFromTop() set method - set the - # percentage to crop from the top when using - # crop 'auto' option. - # * Added setTransparency() set method - allows you - # to turn transparency off (like when saving - # as a jpg). - # * Added setFillColor() set method - set the - # background color to use instead of transparency. - # 05-11-11 J.C.O 0.1.5.1 * Fixed interlacing option - # 0-07-12 J.C.O 1.0 - # - # Known issues & Limitations: - # ------------------------------- - # Not so much an issue, the image is destroyed on the deconstruct rather than - # when we have finished with it. The reason for this is that we don't know - # when we're finished with it as you can both save the image and display - # it directly to the screen (imagedestroy($this->imageResized)) - # - # Opening BMP files is slow. A test with 884 bmp files processed in a loop - # takes forever - over 5 min. This test inlcuded opening the file, then - # getting and displaying its width and height. - # - # $forceStretch: - # ------------------------------- - # On by default. - # $forceStretch can be disabled by calling method setForceStretch with false - # parameter. If disabled, if an images original size is smaller than the size - # specified by the user, the original size will be used. This is useful when - # dealing with small images. - # - # If enabled, images smaller than the size specified will be stretched to - # that size. - # - # Tips: - # ------------------------------- - # * If you're resizing a transparent png and saving it as a jpg, set - # $keepTransparency to false with: $magicianObj->setTransparency(false); - # - # FEATURES: - # * EASY TO USE - # * BMP SUPPORT (read & write) - # * PSD (photoshop) support (read) - # * RESIZE IMAGES - # - Preserve transparency (png, gif) - # - Apply sharpening (jpg) (requires PHP >= 5.1.0) - # - Set image quality (jpg, png) - # - Resize modes: - # - exact size - # - resize by width (auto height) - # - resize by height (auto width) - # - auto (automatically determine the best of the above modes to use) - # - crop - resize as best as it can then crop the rest - # - Force stretching of smaller images (upscale) - # * APPLY FILTERS - # - Convert to grey scale - # - Convert to black and white - # - Convert to sepia - # - Convert to negative - # * ROTATE IMAGES - # - Rotate using predefined "left", "right", or "180"; or any custom degree amount - # * EXTRACT EXIF DATA (requires exif module) - # - make - # - model - # - date - # - exposure - # - aperture - # - f-stop - # - iso - # - focal length - # - exposure program - # - metering mode - # - flash status - # - creator - # - copyright - # * ADD WATERMARK - # - Specify exact x, y placement - # - Or, specify using one of the 9 pre-defined placements such as "tl" - # (for top left), "m" (for middle), "br" (for bottom right) - # - also specify padding from edge amount (optional). - # - Set opacity of watermark (png). - # * ADD BORDER - # * USE HEX WHEN SPECIFYING COLORS (eg: #ffffff) - # * SAVE IMAGE OR OUTPUT TO SCREEN - # - # - # ========================================================================# - - -class imageLib -{ - - private $fileName; - private $image; - protected $imageResized; - private $widthOriginal; # Always be the original width - private $heightOriginal; - private $width; # Current width (width after resize) - private $height; - private $imageSize; - private $fileExtension; - - private $debug = true; - private $errorArray = array(); - - private $forceStretch = true; - private $aggresiveSharpening = false; - - private $transparentArray = array('.png', '.gif'); - private $keepTransparency = true; - private $fillColorArray = array('r'=>255, 'g'=>255, 'b'=>255); - - private $sharpenArray = array('jpg'); - - private $psdReaderPath; - private $filterOverlayPath; - - private $isInterlace; - - private $captionBoxPositionArray = array(); - - private $fontDir = 'fonts'; - - private $cropFromTopPercent = 10; - - -## -------------------------------------------------------- - - function __construct($fileName) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Constructor - # Param in: $fileName: File name and path. - # Param out: n/a - # Reference: - # Notes: - # - { - if (!$this->testGDInstalled()) { if ($this->debug) { throw new Exception('The GD Library is not installed.'); }else{ throw new Exception(); }}; - - $this->initialise(); - - // *** Save the image file name. Only store this incase you want to display it - $this->fileName = $fileName; - $this->fileExtension = fix_strtolower(strrchr($fileName, '.')); - - // *** Open up the file - $this->image = $this->openImage($fileName); - - - // *** Assign here so we don't modify the original - $this->imageResized = $this->image; - - // *** If file is an image - if ($this->testIsImage($this->image)) - { - // *** Get width and height - $this->width = imagesx($this->image); - $this->widthOriginal = imagesx($this->image); - $this->height = imagesy($this->image); - $this->heightOriginal = imagesy($this->image); - - - /* Added 15-09-08 - * Get the filesize using this build in method. - * Stores an array of size - * - * $this->imageSize[1] = width - * $this->imageSize[2] = height - * $this->imageSize[3] = width x height - * - */ - $this->imageSize = getimagesize($this->fileName); - - } else { - $this->errorArray[] = 'File is not an image'; - } - } - -## -------------------------------------------------------- - - private function initialise () { - - $this->psdReaderPath = dirname(__FILE__) . '/classPhpPsdReader.php'; - $this->filterOverlayPath = dirname(__FILE__) . '/filters'; - - // *** Set if image should be interlaced or not. - $this->isInterlace = false; - } - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Resize -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - - public function resizeImage($newWidth, $newHeight, $option = 0, $sharpen = false, $autoRotate = false) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Resizes the image - # Param in: $newWidth: - # $newHeight: - # $option: 0 / exact = defined size; - # 1 / portrait = keep aspect set height; - # 2 / landscape = keep aspect set width; - # 3 / auto = auto; - # 4 / crop= resize and crop; - # - # $option can also be an array containing options for - # cropping. E.G., array('crop', 'r') - # - # This array only applies to 'crop' and the 'r' refers to - # "crop right". Other value include; tl, t, tr, l, m (default), - # r, bl, b, br, or you can specify your own co-ords (which - # isn't recommended. - # - # $sharpen: true: sharpen (jpg only); - # false: don't sharpen - # Param out: n/a - # Reference: - # Notes: To clarify the $option input: - # 0 = The exact height and width dimensions you set. - # 1 = Whatever height is passed in will be the height that - # is set. The width will be calculated and set automatically - # to a the value that keeps the original aspect ratio. - # 2 = The same but based on the width. We try make the image the - # biggest size we can while stil fitting inside the box size - # 3 = Depending whether the image is landscape or portrait, this - # will automatically determine whether to resize via - # dimension 1,2 or 0 - # 4 = Will resize and then crop the image for best fit - # - # forceStretch can be applied to options 1,2,3 and 4 - # - { - - // *** We can pass in an array of options to change the crop position - $cropPos = 'm'; - if (is_array($option) && fix_strtolower($option[0]) == 'crop') { - $cropPos = $option[1]; # get the crop option - } else if (strpos($option, '-') !== false) { - // *** Or pass in a hyphen seperated option - $optionPiecesArray = explode('-', $option); - $cropPos = end($optionPiecesArray); - } - - // *** Check the option is valid - $option = $this->prepOption($option); - - // *** Make sure the file passed in is valid - if (!$this->image) { if ($this->debug) { throw new Exception('file ' . $this->getFileName() .' is missing or invalid'); }else{ throw new Exception(); }}; - - // *** Get optimal width and height - based on $option - $dimensionsArray = $this->getDimensions($newWidth, $newHeight, $option); - - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - - // *** Resample - create image canvas of x, y size - $this->imageResized = imagecreatetruecolor($optimalWidth, $optimalHeight); - $this->keepTransparancy($optimalWidth, $optimalHeight, $this->imageResized); - imagecopyresampled($this->imageResized, $this->image, 0, 0, 0, 0, $optimalWidth, $optimalHeight, $this->width, $this->height); - - - // *** If '4', then crop too - if ($option == 4 || $option == 'crop') { - - if (($optimalWidth >= $newWidth && $optimalHeight >= $newHeight)) { - $this->crop($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos); - } - } - - // *** If Rotate. - if ($autoRotate) { - - $exifData = $this->getExif(false); - if (count($exifData) > 0) { - - switch($exifData['orientation']) { - case 8: - $this->imageResized = imagerotate($this->imageResized,90,0); - break; - case 3: - $this->imageResized = imagerotate($this->imageResized,180,0); - break; - case 6: - $this->imageResized = imagerotate($this->imageResized,-90,0); - break; - } - } - } - - // *** Sharpen image (if jpg and the user wishes to do so) - if ($sharpen && in_array($this->fileExtension, $this->sharpenArray)) { - - // *** Sharpen - $this->sharpen(); - } - } - -## -------------------------------------------------------- - - public function cropImage($newWidth, $newHeight, $cropPos = 'm') - # Author: Jarrod Oberto - # Date: 08-09-11 - # Purpose: Crops the image - # Param in: $newWidth: crop with - # $newHeight: crop height - # $cropPos: Can be any of the following: - # tl, t, tr, l, m, r, bl, b, br, auto - # Or: - # a custom position such as '30x50' - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Make sure the file passed in is valid - if (!$this->image) { if ($this->debug) { throw new Exception('file ' . $this->getFileName() .' is missing or invalid'); }else{ throw new Exception(); }}; - - $this->imageResized = $this->image; - $this->crop($this->width, $this->height, $newWidth, $newHeight, $cropPos); - - } - -## -------------------------------------------------------- - - private function keepTransparancy($width, $height, $im) - # Author: Jarrod Oberto - # Date: 08-04-11 - # Purpose: Keep transparency for png and gif image - # Param in: - # Param out: n/a - # Reference: - # Notes: - # - { - // *** If PNG, perform some transparency retention actions (gif untested) - if (in_array($this->fileExtension, $this->transparentArray) && $this->keepTransparency) { - imagealphablending($im, false); - imagesavealpha($im, true); - $transparent = imagecolorallocatealpha($im, 255, 255, 255, 127); - imagefilledrectangle($im, 0, 0, $width, $height, $transparent); - } else { - $color = imagecolorallocate($im, $this->fillColorArray['r'], $this->fillColorArray['g'], $this->fillColorArray['b']); - imagefilledrectangle($im, 0, 0, $width, $height, $color); - } - } - -## -------------------------------------------------------- - - private function crop($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos) - # Author: Jarrod Oberto - # Date: 15-09-08 - # Purpose: Crops the image - # Param in: $newWidth: - # $newHeight: - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Get cropping co-ordinates - $cropArray = $this->getCropPlacing($optimalWidth, $optimalHeight, $newWidth, $newHeight, $cropPos); - $cropStartX = $cropArray['x']; - $cropStartY = $cropArray['y']; - - // *** Crop this bad boy - $crop = imagecreatetruecolor($newWidth , $newHeight); - $this->keepTransparancy($optimalWidth, $optimalHeight, $crop); - imagecopyresampled($crop, $this->imageResized, 0, 0, $cropStartX, $cropStartY, $newWidth, $newHeight , $newWidth, $newHeight); - - $this->imageResized = $crop; - - // *** Set new width and height to our variables - $this->width = $newWidth; - $this->height = $newHeight; - - } - -## -------------------------------------------------------- - - private function getCropPlacing($optimalWidth, $optimalHeight, $newWidth, $newHeight, $pos='m') - # - # Author: Jarrod Oberto - # Date: July 11 - # Purpose: Set the cropping area. - # Params in: - # Params out: (array) the crop x and y co-ordinates. - # Notes: When specifying the exact pixel crop position (eg 10x15), be - # very careful as it's easy to crop out of the image leaving - # black borders. - # - { - $pos = fix_strtolower($pos); - - // *** If co-ords have been entered - if (strstr($pos, 'x')) { - $pos = str_replace(' ', '', $pos); - - $xyArray = explode('x', $pos); - list($cropStartX, $cropStartY) = $xyArray; - - } else { - - switch ($pos) { - case 'tl': - $cropStartX = 0; - $cropStartY = 0; - break; - - case 't': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = 0; - break; - - case 'tr': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = 0; - break; - - case 'l': - $cropStartX = 0; - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'm': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'r': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - - case 'bl': - $cropStartX = 0; - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'b': - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'br': - $cropStartX = $optimalWidth - $newWidth; - $cropStartY = $optimalHeight - $newHeight; - break; - - case 'auto': - // *** If image is a portrait crop from top, not center. v1.5 - if ($optimalHeight > $optimalWidth) { - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ($this->cropFromTopPercent /100) * $optimalHeight; - } else { - - // *** Else crop from the center - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - } - break; - - default: - // *** Default to center - $cropStartX = ( $optimalWidth / 2) - ( $newWidth /2 ); - $cropStartY = ( $optimalHeight/ 2) - ( $newHeight/2 ); - break; - } - } - - return array('x' => $cropStartX, 'y' => $cropStartY); - } - -## -------------------------------------------------------- - - private function getDimensions($newWidth, $newHeight, $option) - # Author: Jarrod Oberto - # Date: 17-11-09 - # Purpose: Get new image dimensions based on user specificaions - # Param in: $newWidth: - # $newHeight: - # Param out: Array of new width and height values - # Reference: - # Notes: If $option = 3 then this function is call recursivly - # - # To clarify the $option input: - # 0 = The exact height and width dimensions you set. - # 1 = Whatever height is passed in will be the height that - # is set. The width will be calculated and set automatically - # to a the value that keeps the original aspect ratio. - # 2 = The same but based on the width. - # 3 = Depending whether the image is landscape or portrait, this - # will automatically determine whether to resize via - # dimension 1,2 or 0. - # 4 = Resize the image as much as possible, then crop the - # remainder. - { - - switch (strval($option)) - { - case '0': - case 'exact': - $optimalWidth = $newWidth; - $optimalHeight= $newHeight; - break; - case '1': - case 'portrait': - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '2': - case 'landscape': - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '3': - case 'auto': - $dimensionsArray = $this->getSizeByAuto($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - case '4': - case 'crop': - $dimensionsArray = $this->getOptimalCrop($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - break; - } - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function getSizeByFixedHeight($newWidth, $newHeight) - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual height is less than target height - if ($this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $ratio = $this->width / $this->height; - - $newWidth = $newHeight * $ratio; - - //return $newWidth; - return array('optimalWidth' => $newWidth, 'optimalHeight' => $newHeight); - } - -## -------------------------------------------------------- - - private function getSizeByFixedWidth($newWidth, $newHeight) - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual width is less than target width - if ($this->width < $newWidth) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $ratio = $this->height / $this->width; - - $newHeight = $newWidth * $ratio; - - //return $newHeight; - return array('optimalWidth' => $newWidth, 'optimalHeight' => $newHeight); - } - -## -------------------------------------------------------- - - private function getSizeByAuto($newWidth, $newHeight) - # Author: Jarrod Oberto - # Date: 19-08-08 - # Purpose: Depending on the height, choose to resize by 0, 1, or 2 - # Param in: The new height and new width - # Notes: - # - { - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual size is less than target size - if ($this->width < $newWidth && $this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - if ($this->height < $this->width) - // *** Image to be resized is wider (landscape) - { - //$optimalWidth = $newWidth; - //$optimalHeight= $this->getSizeByFixedWidth($newWidth); - - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } - elseif ($this->height > $this->width) - // *** Image to be resized is taller (portrait) - { - //$optimalWidth = $this->getSizeByFixedHeight($newHeight); - //$optimalHeight= $newHeight; - - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } - else - // *** Image to be resizerd is a square - { - - if ($newHeight < $newWidth) { - //$optimalWidth = $newWidth; - //$optimalHeight= $this->getSizeByFixedWidth($newWidth); - $dimensionsArray = $this->getSizeByFixedWidth($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } else if ($newHeight > $newWidth) { - //$optimalWidth = $this->getSizeByFixedHeight($newHeight); - //$optimalHeight= $newHeight; - $dimensionsArray = $this->getSizeByFixedHeight($newWidth, $newHeight); - $optimalWidth = $dimensionsArray['optimalWidth']; - $optimalHeight = $dimensionsArray['optimalHeight']; - } else { - // *** Sqaure being resized to a square - $optimalWidth = $newWidth; - $optimalHeight= $newHeight; - } - } - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function getOptimalCrop($newWidth, $newHeight) - # Author: Jarrod Oberto - # Date: 17-11-09 - # Purpose: Get optimal crop dimensions - # Param in: width and height as requested by user (fig 3) - # Param out: Array of optimal width and height (fig 2) - # Reference: - # Notes: The optimal width and height return are not the same as the - # same as the width and height passed in. For example: - # - # - # |-----------------| |------------| |-------| - # | | => |**| |**| => | | - # | | |**| |**| | | - # | | |------------| |-------| - # |-----------------| - # original optimal crop - # size size size - # Fig 1 2 3 - # - # 300 x 250 150 x 125 150 x 100 - # - # The optimal size is the smallest size (that is closest to the crop size) - # while retaining proportion/ratio. - # - # The crop size is the optimal size that has been cropped on one axis to - # make the image the exact size specified by the user. - # - # * represent cropped area - # - { - - // *** If forcing is off... - if (!$this->forceStretch) { - - // *** ...check if actual size is less than target size - if ($this->width < $newWidth && $this->height < $newHeight) { - return array('optimalWidth' => $this->width, 'optimalHeight' => $this->height); - } - } - - $heightRatio = $this->height / $newHeight; - $widthRatio = $this->width / $newWidth; - - if ($heightRatio < $widthRatio) { - $optimalRatio = $heightRatio; - } else { - $optimalRatio = $widthRatio; - } - - $optimalHeight = round( $this->height / $optimalRatio ); - $optimalWidth = round( $this->width / $optimalRatio ); - - return array('optimalWidth' => $optimalWidth, 'optimalHeight' => $optimalHeight); - } - -## -------------------------------------------------------- - - private function sharpen() - # Author: Jarrod Oberto - # Date: 08 04 2011 - # Purpose: Sharpen image - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # Credit: Incorporates Joe Lencioni (August 6, 2008) code - { - - if (version_compare(PHP_VERSION, '5.1.0') >= 0) { - - // *** - if ($this->aggresiveSharpening) { # A more aggressive sharpening solution - - $sharpenMatrix = array( array( -1, -1, -1 ), - array( -1, 16, -1 ), - array( -1, -1, -1 ) ); - $divisor = 8; - $offset = 0; - - imageconvolution($this->imageResized, $sharpenMatrix, $divisor, $offset); - } - else # More subtle and personally more desirable - { - $sharpness = $this->findSharp($this->widthOriginal, $this->width); - - $sharpenMatrix = array( - array(-1, -2, -1), - array(-2, $sharpness + 12, -2), //Lessen the effect of a filter by increasing the value in the center cell - array(-1, -2, -1) - ); - $divisor = $sharpness; // adjusts brightness - $offset = 0; - imageconvolution($this->imageResized, $sharpenMatrix, $divisor, $offset); - } - } - else - { - if ($this->debug) { throw new Exception('Sharpening required PHP 5.1.0 or greater.'); } - } - } - - ## -------------------------------------------------------- - - private function sharpen2($level) - { - $sharpenMatrix = array( - array($level, $level, $level), - array($level, (8*$level)+1, $level), //Lessen the effect of a filter by increasing the value in the center cell - array($level, $level, $level) - ); - - } - -## -------------------------------------------------------- - - private function findSharp($orig, $final) - # Author: Ryan Rud (http://adryrun.com) - # Purpose: Find optimal sharpness - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - $final = $final * (750.0 / $orig); - $a = 52; - $b = -0.27810650887573124; - $c = .00047337278106508946; - - $result = $a + $b * $final + $c * $final * $final; - - return max(round($result), 0); - } - -## -------------------------------------------------------- - - private function prepOption($option) - # Author: Jarrod Oberto - # Purpose: Prep option like change the passed in option to lowercase - # Param in: (str/int) $option: eg. 'exact', 'crop'. 0, 4 - # Param out: lowercase string - # Reference: - # Notes: - # - { - if (is_array($option)) { - if (fix_strtolower($option[0]) == 'crop' && count($option) == 2) { - return 'crop'; - } else { - throw new Exception('Crop resize option array is badly formatted.'); - } - } else if (strpos($option, 'crop') !== false) { - return 'crop'; - } - - if (is_string($option)) { - return fix_strtolower($option); - } - - return $option; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Presets -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - -# -# Preset are pre-defined templates you can apply to your image. -# -# These are inteded to be applied to thumbnail images. -# - - - public function borderPreset($preset) - { - switch ($preset) - { - - case 'simple': - $this->addBorder(7, '#fff'); - $this->addBorder(6, '#f2f1f0'); - $this->addBorder(2, '#fff'); - $this->addBorder(1, '#ccc'); - break; - default: - break; - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Draw border -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addBorder($thickness = 1, $rgbArray = array(255, 255, 255)) - # Author: Jarrod Oberto - # Date: 05-05-11 - # Purpose: Add a border to the image - # Param in: - # Param out: - # Reference: - # Notes: This border is added to the INSIDE of the image - # - { - if ($this->imageResized) { - - $rgbArray = $this->formatColor($rgbArray); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - - $x1 = 0; - $y1 = 0; - $x2 = ImageSX($this->imageResized) - 1; - $y2 = ImageSY($this->imageResized) - 1; - - $rgbArray = ImageColorAllocate($this->imageResized, $r, $g, $b); - - - for($i = 0; $i < $thickness; $i++) { - ImageRectangle($this->imageResized, $x1++, $y1++, $x2--, $y2--, $rgbArray); - } - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Gray Scale -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function greyScale() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image greyscale - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - } - - } - - ## -------------------------------------------------------- - - public function greyScaleEnhanced() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image greyscale - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -15); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, 2); - $this->sharpen($this->width); - } - } - - ## -------------------------------------------------------- - - public function greyScaleDramatic() - # Alias of gd_filter_monopin - { - $this->gd_filter_monopin(); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Black 'n White -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function blackAndWhite() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image black and white - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -1000); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Negative -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function negative() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image negative - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - - imagefilter($this->imageResized, IMG_FILTER_NEGATE); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Sepia -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function sepia() - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Make image sepia - # Param in: n/a - # Param out: - # Reference: - # Notes: - # - { - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, -10); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -20); - imagefilter($this->imageResized, IMG_FILTER_COLORIZE, 60, 30, -15); - } - } - - ## -------------------------------------------------------- - - public function sepia2() - - { - if ($this->imageResized) { - - $total = imagecolorstotal( $this->imageResized ); - for ( $i = 0; $i < $total; $i++ ) { - $index = imagecolorsforindex( $this->imageResized, $i ); - $red = ( $index["red"] * 0.393 + $index["green"] * 0.769 + $index["blue"] * 0.189 ) / 1.351; - $green = ( $index["red"] * 0.349 + $index["green"] * 0.686 + $index["blue"] * 0.168 ) / 1.203; - $blue = ( $index["red"] * 0.272 + $index["green"] * 0.534 + $index["blue"] * 0.131 ) / 2.140; - imagecolorset( $this->imageResized, $i, $red, $green, $blue ); - } - - - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Vintage -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function vintage() - # Alias of gd_filter_monopin - { - $this->gd_filter_vintage(); - } - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Presets By Marc Hibbins -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - - /** Apply 'Monopin' preset */ - public function gd_filter_monopin() - { - - if ($this->imageResized) { - imagefilter($this->imageResized, IMG_FILTER_GRAYSCALE); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, -15); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -15); - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'vignette', 100); - } - } - - ## -------------------------------------------------------- - - public function gd_filter_vintage() - { - if ($this->imageResized) { - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'vignette', 45); - imagefilter($this->imageResized, IMG_FILTER_BRIGHTNESS, 20); - imagefilter($this->imageResized, IMG_FILTER_CONTRAST, -35); - imagefilter($this->imageResized, IMG_FILTER_COLORIZE, 60, -10, 35); - imagefilter($this->imageResized, IMG_FILTER_SMOOTH, 7); - $this->imageResized = $this->gd_apply_overlay($this->imageResized, 'scratch', 10); - } - } - - ## -------------------------------------------------------- - - /** Apply a PNG overlay */ - private function gd_apply_overlay($im, $type, $amount) - # - # Original Author: Marc Hibbins - # License: Attribution-ShareAlike 3.0 - # Purpose: - # Params in: - # Params out: - # Notes: - # - { - $width = imagesx($im); - $height = imagesy($im); - $filter = imagecreatetruecolor($width, $height); - - imagealphablending($filter, false); - imagesavealpha($filter, true); - - $transparent = imagecolorallocatealpha($filter, 255, 255, 255, 127); - imagefilledrectangle($filter, 0, 0, $width, $height, $transparent); - - // *** Resize overlay - $overlay = $this->filterOverlayPath . '/' . $type . '.png'; - $png = imagecreatefrompng($overlay); - imagecopyresampled($filter, $png, 0, 0, 0, 0, $width, $height, imagesx($png), imagesy($png)); - - $comp = imagecreatetruecolor($width, $height); - imagecopy($comp, $im, 0, 0, 0, 0, $width, $height); - imagecopy($comp, $filter, 0, 0, 0, 0, $width, $height); - imagecopymerge($im, $comp, 0, 0, 0, 0, $width, $height, $amount); - - imagedestroy($comp); - return $im; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Colorise -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function image_colorize($rgb) { - imageTrueColorToPalette($this->imageResized,true,256); - $numColors = imageColorsTotal($this->imageResized); - - for ($x = 0; $x < $numColors; $x++) { - list($r,$g,$b) = array_values(imageColorsForIndex($this->imageResized,$x)); - - // calculate grayscale in percent - $grayscale = ($r + $g + $b) / 3 / 0xff; - - imageColorSet($this->imageResized,$x, - $grayscale * $rgb[0], - $grayscale * $rgb[1], - $grayscale * $rgb[2] - ); - - } - - return true; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Reflection -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addReflection($reflectionHeight = 50, $startingTransparency = 30, $inside = false, $bgColor = '#fff', $stretch=false, $divider = 0) - { - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - $im = $this->imageResized; - $li = imagecreatetruecolor($this->width, 1); - - $bgc = imagecolorallocate($li, $r, $g, $b); - imagefilledrectangle($li, 0, 0, $this->width, 1, $bgc); - - $bg = imagecreatetruecolor($this->width, $reflectionHeight); - $wh = imagecolorallocate($im, 255, 255, 255); - - $im = imagerotate($im, -180, $wh); - imagecopyresampled($bg, $im, 0, 0, 0, 0, $this->width, $this->height, $this->width, $this->height); - - $im = $bg; - - $bg = imagecreatetruecolor($this->width, $reflectionHeight); - - for ($x = 0; $x < $this->width; $x++) { - imagecopy($bg, $im, $x, 0, $this->width-$x -1, 0, 1, $reflectionHeight); - } - $im = $bg; - - $transaprencyAmount = $this->invertTransparency($startingTransparency, 100); - - - // *** Fade - if ($stretch) { - $step = 100/($reflectionHeight + $startingTransparency); - } else{ - $step = 100/$reflectionHeight; - } - for($i=0; $i<=$reflectionHeight; $i++){ - - if($startingTransparency>100) $startingTransparency = 100; - if($startingTransparency< 1) $startingTransparency = 1; - imagecopymerge($bg, $li, 0, $i, 0, 0, $this->width, 1, $startingTransparency); - $startingTransparency+=$step; - } - - // *** Apply fade - imagecopymerge($im, $li, 0, 0, 0, 0, $this->width, $divider, 100); // Divider - - - // *** width, height of reflection. - $x = imagesx($im); - $y = imagesy($im); - - - // *** Determines if the reflection should be displayed inside or outside the image - if ($inside) { - - // Create new blank image with sizes. - $final = imagecreatetruecolor($this->width, $this->height); - - imagecopymerge ($final, $this->imageResized, 0, 0, 0, $reflectionHeight, $this->width, $this->height - $reflectionHeight, 100); - imagecopymerge ($final, $im, 0, $this->height - $reflectionHeight, 0, 0, $x, $y, 100); - - } else { - - // Create new blank image with sizes. - $final = imagecreatetruecolor($this->width, $this->height + $y); - - imagecopymerge ($final, $this->imageResized, 0, 0, 0, 0, $this->width, $this->height, 100); - imagecopymerge ($final, $im, 0, $this->height, 0, 0, $x, $y, 100); - } - - $this->imageResized = $final; - - imagedestroy($li); - imagedestroy($im); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Rotate -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function rotate($value = 90, $bgColor = 'transparent') - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Rotate image - # Param in: (mixed) $degrees: (int) number of degress to rotate image - # (str) param "left": rotate left - # (str) param "right": rotate right - # (str) param "upside": upside-down image - # Param out: - # Reference: - # Notes: The default direction of imageRotate() is counter clockwise. - # - { - if ($this->imageResized) { - - if (is_integer($value)) { - $degrees = $value; - } - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - if (isset($rgbArray['a'])) {$a = $rgbArray['a']; } - - if (is_string($value)) { - - $value = fix_strtolower($value); - - switch ($value) { - case 'left': - $degrees = 90; - break; - case 'right': - $degrees = 270; - break; - case 'upside': - $degrees = 180; - break; - default: - break; - } - - } - - // *** The default direction of imageRotate() is counter clockwise - // * This makes it clockwise - $degrees = 360 - $degrees; - - // *** Create background color - $bg = ImageColorAllocateAlpha($this->imageResized, $r, $g, $b, $a); - - // *** Fill with background - ImageFill($this->imageResized, 0, 0 , $bg); - - // *** Rotate - $this->imageResized = imagerotate($this->imageResized, $degrees, $bg); // Rotate 45 degrees and allocated the transparent colour as the one to make transparent (obviously) - - // Ensure alpha transparency - ImageSaveAlpha($this->imageResized,true); - - } - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Round corners -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function roundCorners($radius = 5, $bgColor = 'transparent') - # Author: Jarrod Oberto - # Date: 19-05-2011 - # Purpose: Create rounded corners on your image - # Param in: (int) radius = the amount of curvature - # (mixed) $bgColor = the corner background color - # Param out: n/a - # Reference: - # Notes: - # - { - - // *** Check if the user wants transparency - $isTransparent = false; - if (!is_array($bgColor)) { - if (fix_strtolower($bgColor) == 'transparent') { - $isTransparent = true; - } - } - - - // *** If we use transparency, we need to color our curved mask with a unique color - if ($isTransparent) { - $bgColor = $this->findUnusedGreen(); - } - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - if (isset($rgbArray['a'])) {$a = $rgbArray['a']; } - - - - // *** Create top-left corner mask (square) - $cornerImg = imagecreatetruecolor($radius, $radius); - //$cornerImg = imagecreate($radius, $radius); - - //imagealphablending($cornerImg, true); - //imagesavealpha($cornerImg, true); - - //imagealphablending($this->imageResized, false); - //imagesavealpha($this->imageResized, true); - - // *** Give it a color - $maskColor = imagecolorallocate($cornerImg, 0, 0, 0); - - - - // *** Replace the mask color (black) to transparent - imagecolortransparent($cornerImg, $maskColor); - - - - // *** Create the image background color - $imagebgColor = imagecolorallocate($cornerImg, $r, $g, $b); - - - - // *** Fill the corner area to the user defined color - imagefill($cornerImg, 0, 0, $imagebgColor); - - - imagefilledellipse($cornerImg, $radius, $radius, $radius * 2, $radius * 2, $maskColor ); - - - // *** Map to top left corner - imagecopymerge($this->imageResized, $cornerImg, 0, 0, 0, 0, $radius, $radius, 100); #tl - - // *** Map rounded corner to other corners by rotating and applying the mask - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, 0, $this->height - $radius, 0, 0, $radius, $radius, 100); #bl - - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, $this->width - $radius, $this->height - $radius, 0, 0, $radius, $radius, 100); #br - - $cornerImg = imagerotate($cornerImg, 90, 0); - imagecopymerge($this->imageResized, $cornerImg, $this->width - $radius, 0, 0, 0, $radius, $radius, 100); #tr - - - // *** If corners are to be transparent, we fill our chromakey color as transparent. - if ($isTransparent) { - //imagecolortransparent($this->imageResized, $imagebgColor); - $this->imageResized = $this->transparentImage($this->imageResized); - imagesavealpha($this->imageResized, true); - } - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Shadow -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addShadow($shadowAngle=45, $blur=15, $bgColor='transparent') - # - # Author: Jarrod Oberto (Adapted from Pascal Naidon) - # Ref: http://www.les-stooges.org/pascal/webdesign/vignettes/index.php?la=en - # Purpose: Add a drop shadow to your image - # Params in: (int) $angle: the angle of the shadow - # (int) $blur: the blur distance - # (mixed) $bgColor: the color of the background - # Params out: - # Notes: - # - { - // *** A higher number results in a smoother shadow - define('STEPS', $blur*2); - - // *** Set the shadow distance - $shadowDistance = $blur*0.25; - - // *** Set blur width and height - $blurWidth = $blurHeight = $blur; - - - if ($shadowAngle == 0) { - $distWidth = 0; - $distHeight = 0; - } else { - $distWidth = $shadowDistance * cos(deg2rad($shadowAngle)); - $distHeight = $shadowDistance * sin(deg2rad($shadowAngle)); - } - - - // *** Convert color - if (fix_strtolower($bgColor) != 'transparent') { - $rgbArray = $this->formatColor($bgColor); - $r0 = $rgbArray['r']; - $g0 = $rgbArray['g']; - $b0 = $rgbArray['b']; - } - - - $image = $this->imageResized; - $width = $this->width; - $height = $this->height; - - - $newImage = imagecreatetruecolor($width, $height); - imagecopyresampled($newImage, $image, 0, 0, 0, 0, $width, $height, $width, $height); - - - // *** RGB - $rgb = imagecreatetruecolor($width+$blurWidth,$height+$blurHeight); - $colour = imagecolorallocate($rgb, 0, 0, 0); - imagefilledrectangle($rgb, 0, 0, $width+$blurWidth, $height+$blurHeight, $colour); - $colour = imagecolorallocate($rgb, 255, 255, 255); - //imagefilledrectangle($rgb, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-$distWidth, $height+$blurWidth*0.5-$distHeight, $colour); - imagefilledrectangle($rgb, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-$distWidth, $height+$blurWidth*0.5-$distHeight, $colour); - //imagecopymerge($rgb, $newImage, 1+$blurWidth*0.5-$distWidth, 1+$blurHeight*0.5-$distHeight, 0,0, $width, $height, 100); - imagecopymerge($rgb, $newImage, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, 0,0, $width+$blurWidth, $height+$blurHeight, 100); - - - // *** Shadow (alpha) - $shadow = imagecreatetruecolor($width+$blurWidth,$height+$blurHeight); - imagealphablending($shadow, false); - $colour = imagecolorallocate($shadow, 0, 0, 0); - imagefilledrectangle($shadow, 0, 0, $width+$blurWidth, $height+$blurHeight, $colour); - - - for($i=0;$i<=STEPS;$i++) { - - $t = ((1.0*$i)/STEPS); - $intensity = 255*$t*$t; - - $colour = imagecolorallocate($shadow, $intensity, $intensity, $intensity); - $points = array( - $blurWidth*$t, $blurHeight, // Point 1 (x, y) - $blurWidth, $blurHeight*$t, // Point 2 (x, y) - $width, $blurHeight*$t, // Point 3 (x, y) - $width+$blurWidth*(1-$t), $blurHeight, // Point 4 (x, y) - $width+$blurWidth*(1-$t), $height, // Point 5 (x, y) - $width, $height+$blurHeight*(1-$t), // Point 6 (x, y) - $blurWidth, $height+$blurHeight*(1-$t), // Point 7 (x, y) - $blurWidth*$t, $height // Point 8 (x, y) - ); - imagepolygon($shadow, $points, 8, $colour); - } - - for($i=0;$i<=STEPS;$i++) { - - $t = ((1.0*$i)/STEPS); - $intensity = 255*$t*$t; - - $colour = imagecolorallocate($shadow, $intensity, $intensity, $intensity); - imagefilledarc($shadow, $blurWidth-1, $blurHeight-1, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 180, 268, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $width, $blurHeight-1, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 270, 358, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $width, $height, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 0, 90, $colour, IMG_ARC_PIE); - imagefilledarc($shadow, $blurWidth-1, $height, 2*(1-$t)*$blurWidth, 2*(1-$t)*$blurHeight, 90, 180, $colour, IMG_ARC_PIE); - } - - - $colour = imagecolorallocate($shadow, 255, 255, 255); - imagefilledrectangle($shadow, $blurWidth, $blurHeight, $width, $height, $colour); - imagefilledrectangle($shadow, $blurWidth*0.5-$distWidth, $blurHeight*0.5-$distHeight, $width+$blurWidth*0.5-1-$distWidth, $height+$blurHeight*0.5-1-$distHeight, $colour); - - - // *** The magic - imagealphablending($rgb, false); - - for ($theX=0;$theX> 16) & 0xFF; - $g = ($colArray >> 8) & 0xFF; - $b = $colArray & 0xFF; - - // *** Get the alpha value for every pixel of the shadow image - $colArray = imagecolorat($shadow,$theX,$theY); - $a = $colArray & 0xFF; - $a = 127-floor($a/2); - $t = $a/128.0; - - // *** Create color - if(fix_strtolower($bgColor) == 'transparent') { - $myColour = imagecolorallocatealpha($rgb,$r,$g,$b,$a); - } else { - $myColour = imagecolorallocate($rgb,$r*(1.0-$t)+$r0*$t,$g*(1.0-$t)+$g0*$t,$b*(1.0-$t)+$b0*$t); - } - - // *** Add color to new rgb image - imagesetpixel($rgb, $theX, $theY, $myColour); - } - } - - imagealphablending($rgb, true); - imagesavealpha($rgb, true); - - $this->imageResized = $rgb; - - imagedestroy($image); - imagedestroy($newImage); - imagedestroy($shadow); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Caption Box -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addCaptionBox($side='b', $thickness=50, $padding=0, $bgColor='#000', $transaprencyAmount=30) - # - # Author: Jarrod Oberto - # Date: 26 May 2011 - # Purpose: Add a caption box - # Params in: (str) $side: the side to add the caption box (t, r, b, or l). - # (int) $thickness: how thick you want the caption box to be. - # (mixed) $bgColor: The color of the caption box. - # (int) $transaprencyAmount: The amount of transparency to be - # applied. - # Params out: n/a - # Notes: - # - { - $side = fix_strtolower($side); - - // *** Convert color - $rgbArray = $this->formatColor($bgColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - $positionArray = $this->calculateCaptionBoxPosition($side, $thickness, $padding); - - // *** Store incase we want to use method addTextToCaptionBox() - $this->captionBoxPositionArray = $positionArray; - - - $transaprencyAmount = $this->invertTransparency($transaprencyAmount, 127, false); - $transparent = imagecolorallocatealpha($this->imageResized, $r, $g, $b, $transaprencyAmount); - imagefilledrectangle($this->imageResized, $positionArray['x1'], $positionArray['y1'], $positionArray['x2'], $positionArray['y2'], $transparent); - } - - ## -------------------------------------------------------- - - public function addTextToCaptionBox($text, $fontColor='#fff', $fontSize = 12, $angle = 0, $font = null) - # - # Author: Jarrod Oberto - # Date: 03 Aug 11 - # Purpose: Simplify adding text to a caption box by automatically - # locating the center of the caption box - # Params in: The usually text paams (less a couple) - # Params out: n/a - # Notes: - # - { - - // *** Get the caption box measurements - if (count($this->captionBoxPositionArray) == 4) { - $x1 = $this->captionBoxPositionArray['x1']; - $x2 = $this->captionBoxPositionArray['x2']; - $y1 = $this->captionBoxPositionArray['y1']; - $y2 = $this->captionBoxPositionArray['y2']; - } else { - if ($this->debug) { throw new Exception('No caption box found.'); }else{ return false; } - } - - - // *** Get text font - $font = $this->getTextFont($font); - - // *** Get text size - $textSizeArray = $this->getTextSize($fontSize, $angle, $font, $text); - $textWidth = $textSizeArray['width']; - $textHeight = $textSizeArray['height']; - - // *** Find the width/height middle points - $boxXMiddle = (($x2 - $x1) / 2); - $boxYMiddle = (($y2 - $y1) / 2); - - // *** Box middle - half the text width/height - $xPos = ($x1 + $boxXMiddle) - ($textWidth/2); - $yPos = ($y1 + $boxYMiddle) - ($textHeight/2); - - $pos = $xPos . 'x' . $yPos; - - $this->addText($text, $pos, $padding = 0, $fontColor, $fontSize, $angle, $font); - - } - - ## -------------------------------------------------------- - - private function calculateCaptionBoxPosition($side, $thickness, $padding) - { - $positionArray = array(); - - switch ($side) { - case 't': - $positionArray['x1'] = 0; - $positionArray['y1'] = $padding; - $positionArray['x2'] = $this->width; - $positionArray['y2'] = $thickness + $padding; - break; - case 'r': - $positionArray['x1'] = $this->width - $thickness - $padding; - $positionArray['y1'] = 0; - $positionArray['x2'] = $this->width - $padding; - $positionArray['y2'] = $this->height; - break; - case 'b': - $positionArray['x1'] = 0; - $positionArray['y1'] = $this->height - $thickness - $padding; - $positionArray['x2'] = $this->width; - $positionArray['y2'] = $this->height - $padding; - break; - case 'l': - $positionArray['x1'] = $padding; - $positionArray['y1'] = 0; - $positionArray['x2'] = $thickness + $padding; - $positionArray['y2'] = $this->height; - break; - - default: - break; - } - - return $positionArray; - - } - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Get EXIF Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function getExif($debug=false) - # Author: Jarrod Oberto - # Date: 07-05-2011 - # Purpose: Get image EXIF data - # Param in: n/a - # Param out: An associate array of EXIF data - # Reference: - # Notes: - # 23 May 13 : added orientation flag -jco - # - { - - if (!$this->debug || !$debug) { $debug = false; } - - // *** Check all is good - check the EXIF library exists and the file exists, too. - if (!$this->testEXIFInstalled()) { if ($debug) { throw new Exception('The EXIF Library is not installed.'); }else{ return array(); }}; - if (!file_exists($this->fileName)) { if ($debug) { throw new Exception('Image not found.'); }else{ return array(); }}; - if ($this->fileExtension != '.jpg') { if ($debug) { throw new Exception('Metadata not supported for this image type.'); }else{ return array(); }}; - $exifData = exif_read_data($this->fileName, 'IFD0'); - - // *** Format the apperture value - $ev = $exifData['ApertureValue']; - $apPeicesArray = explode('/', $ev); - if (count($apPeicesArray) == 2) { - $apertureValue = round($apPeicesArray[0] / $apPeicesArray[1], 2, PHP_ROUND_HALF_DOWN) . ' EV'; - } else { $apertureValue = '';} - - // *** Format the focal length - $focalLength = $exifData['FocalLength']; - $flPeicesArray = explode('/', $focalLength); - if (count($flPeicesArray) == 2) { - $focalLength = $flPeicesArray[0] / $flPeicesArray[1] . '.0 mm'; - } else { $focalLength = '';} - - // *** Format fNumber - $fNumber = $exifData['FNumber']; - $fnPeicesArray = explode('/', $fNumber); - if (count($fnPeicesArray) == 2) { - $fNumber = $fnPeicesArray[0] / $fnPeicesArray[1]; - } else { $fNumber = '';} - - // *** Resolve ExposureProgram - if (isset($exifData['ExposureProgram'])) { $ep = $exifData['ExposureProgram']; } - if (isset($ep)) { $ep = $this->resolveExposureProgram($ep); } - - - // *** Resolve MeteringMode - $mm = $exifData['MeteringMode']; - $mm = $this->resolveMeteringMode($mm); - - // *** Resolve Flash - $flash = $exifData['Flash']; - $flash = $this->resolveFlash($flash); - - - if (isset($exifData['Make'])) { - $exifDataArray['make'] = $exifData['Make']; - } else { $exifDataArray['make'] = ''; } - - if (isset($exifData['Model'])) { - $exifDataArray['model'] = $exifData['Model']; - } else { $exifDataArray['model'] = ''; } - - if (isset($exifData['DateTime'])) { - $exifDataArray['date'] = $exifData['DateTime']; - } else { $exifDataArray['date'] = ''; } - - if (isset($exifData['ExposureTime'])) { - $exifDataArray['exposure time'] = $exifData['ExposureTime'] . ' sec.'; - } else { $exifDataArray['exposure time'] = ''; } - - if ($apertureValue != '') { - $exifDataArray['aperture value'] = $apertureValue; - } else { $exifDataArray['aperture value'] = ''; } - - if (isset($exifData['COMPUTED']['ApertureFNumber'])) { - $exifDataArray['f-stop'] = $exifData['COMPUTED']['ApertureFNumber']; - } else { $exifDataArray['f-stop'] = ''; } - - if (isset($exifData['FNumber'])) { - $exifDataArray['fnumber'] = $exifData['FNumber']; - } else { $exifDataArray['fnumber'] = ''; } - - if ($fNumber != '') { - $exifDataArray['fnumber value'] = $fNumber; - } else { $exifDataArray['fnumber value'] = ''; } - - if (isset($exifData['ISOSpeedRatings'])) { - $exifDataArray['iso'] = $exifData['ISOSpeedRatings']; - } else { $exifDataArray['iso'] = ''; } - - if ($focalLength != '') { - $exifDataArray['focal length'] = $focalLength; - } else { $exifDataArray['focal length'] = ''; } - - if (isset($ep)) { - $exifDataArray['exposure program'] = $ep; - } else { $exifDataArray['exposure program'] = ''; } - - if ($mm != '') { - $exifDataArray['metering mode'] = $mm; - } else { $exifDataArray['metering mode'] = ''; } - - if ($flash != '') { - $exifDataArray['flash status'] = $flash; - } else { $exifDataArray['flash status'] = ''; } - - if (isset($exifData['Artist'])) { - $exifDataArray['creator'] = $exifData['Artist'] ; - } else { $exifDataArray['creator'] = ''; } - - if (isset($exifData['Copyright'])) { - $exifDataArray['copyright'] = $exifData['Copyright']; - } else { $exifDataArray['copyright'] = ''; } - - // *** Orientation - if (isset($exifData['Orientation'])) { - $exifDataArray['orientation'] = $exifData['Orientation']; - } else { $exifDataArray['orientation'] = ''; } - - return $exifDataArray; - } - - ## -------------------------------------------------------- - - private function resolveExposureProgram($ep) - { - switch ($ep) { - case 0: - $ep = ''; - break; - case 1: - $ep = 'manual'; - break; - case 2: - $ep = 'normal program'; - break; - case 3: - $ep = 'aperture priority'; - break; - case 4: - $ep = 'shutter priority'; - break; - case 5: - $ep = 'creative program'; - break; - case 6: - $ep = 'action program'; - break; - case 7: - $ep = 'portrait mode'; - break; - case 8: - $ep = 'landscape mode'; - break; - - default: - break; - } - - return $ep; - } - - ## -------------------------------------------------------- - - private function resolveMeteringMode($mm) - { - switch ($mm) { - case 0: - $mm = 'unknown'; - break; - case 1: - $mm = 'average'; - break; - case 2: - $mm = 'center weighted average'; - break; - case 3: - $mm = 'spot'; - break; - case 4: - $mm = 'multi spot'; - break; - case 5: - $mm = 'pattern'; - break; - case 6: - $mm = 'partial'; - break; - case 255: - $mm = 'other'; - break; - - default: - break; - } - - return $mm; - } - - ## -------------------------------------------------------- - - private function resolveFlash($flash) - { - switch ($flash) { - case 0: - $flash = 'flash did not fire'; - break; - case 1: - $flash = 'flash fired'; - break; - case 5: - $flash = 'strobe return light not detected'; - break; - case 7: - $flash = 'strobe return light detected'; - break; - case 9: - $flash = 'flash fired, compulsory flash mode'; - break; - case 13: - $flash = 'flash fired, compulsory flash mode, return light not detected'; - break; - case 15: - $flash = 'flash fired, compulsory flash mode, return light detected'; - break; - case 16: - $flash = 'flash did not fire, compulsory flash mode'; - break; - case 24: - $flash = 'flash did not fire, auto mode'; - break; - case 25: - $flash = 'flash fired, auto mode'; - break; - case 29: - $flash = 'flash fired, auto mode, return light not detected'; - break; - case 31: - $flash = 'flash fired, auto mode, return light detected'; - break; - case 32: - $flash = 'no flash function'; - break; - case 65: - $flash = 'flash fired, red-eye reduction mode'; - break; - case 69: - $flash = 'flash fired, red-eye reduction mode, return light not detected'; - break; - case 71: - $flash = 'flash fired, red-eye reduction mode, return light detected'; - break; - case 73: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode'; - break; - case 77: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode, return light not detected'; - break; - case 79: - $flash = 'flash fired, compulsory flash mode, red-eye reduction mode, return light detected'; - break; - case 89: - $flash = 'flash fired, auto mode, red-eye reduction mode'; - break; - case 93: - $flash = 'flash fired, auto mode, return light not detected, red-eye reduction mode'; - break; - case 95: - $flash = 'flash fired, auto mode, return light detected, red-eye reduction mode'; - break; - - default: - break; - } - - return $flash; - - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Get IPTC Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Write IPTC Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function writeIPTCcaption($value) - # Caption - { - $this->writeIPTC(120, $value); - } - - ## -------------------------------------------------------- - - public function writeIPTCwriter($value) - { - //$this->writeIPTC(65, $value); - } - - ## -------------------------------------------------------- - - private function writeIPTC($dat, $value) - { - - # LIMIT TO JPG - - $caption_block = $this->iptc_maketag(2, $dat, $value); - $image_string = iptcembed($caption_block, $this->fileName); - file_put_contents('iptc.jpg', $image_string); - } - -## -------------------------------------------------------- - - private function iptc_maketag($rec,$dat,$val) - # Author: Thies C. Arntzen - # Purpose: Function to format the new IPTC text - # Param in: $rec: Application record. (We’re working with #2) - # $dat: Index. (120 for caption, 118 for contact. See the IPTC IIM - # specification: - # http://www.iptc.org/std/IIM/4.1/specification/IIMV4.1.pdf - # $val: Value/data/text. Make sure this is within the length - # constraints of the IPTC IIM specification - # Ref: http://blog.peterhaza.no/working-with-image-meta-data-in-exif-and-iptc-headers-from-php/ - # http://php.net/manual/en/function.iptcembed.php - # - { - $len = strlen($val); - if ($len < 0x8000) - return chr(0x1c).chr($rec).chr($dat). - chr($len >> 8). - chr($len & 0xff). - $val; - else - return chr(0x1c).chr($rec).chr($dat). - chr(0x80).chr(0x04). - chr(($len >> 24) & 0xff). - chr(($len >> 16) & 0xff). - chr(($len >> 8 ) & 0xff). - chr(($len ) & 0xff). - $val; - } - - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Write XMP Data -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - //http://xmpphptoolkit.sourceforge.net/ - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Text -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addText($text, $pos = '20x20', $padding = 0, $fontColor='#fff', $fontSize = 12, $angle = 0, $font = null) - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Add text to an image - # Param in: - # Param out: - # Reference: http://php.net/manual/en/function.imagettftext.php - # Notes: Make sure you supply the font. - # - { - - // *** Convert color - $rgbArray = $this->formatColor($fontColor); - $r = $rgbArray['r']; - $g = $rgbArray['g']; - $b = $rgbArray['b']; - - // *** Get text font - $font = $this->getTextFont($font); - - // *** Get text size - $textSizeArray = $this->getTextSize($fontSize, $angle, $font, $text); - $textWidth = $textSizeArray['width']; - $textHeight = $textSizeArray['height']; - - // *** Find co-ords to place text - $posArray = $this->calculatePosition($pos, $padding, $textWidth, $textHeight, false); - $x = $posArray['width']; - $y = $posArray['height']; - - $fontColor = imagecolorallocate($this->imageResized, $r, $g, $b); - - // *** Add text - imagettftext($this->imageResized, $fontSize, $angle, $x, $y, $fontColor, $font, $text); - } - - ## -------------------------------------------------------- - - private function getTextFont($font) - { - // *** Font path (shou - $fontPath = dirname(__FILE__) . '/' . $this->fontDir; - - - // *** The below is/may be needed depending on your version (see ref) - putenv('GDFONTPATH=' . realpath('.')); - - // *** Check if the passed in font exsits... - if ($font == null || !file_exists($font)) { - - // *** ...If not, default to this font. - $font = $fontPath . '/arimo.ttf'; - - // *** Check our default font exists... - if (!file_exists($font)) { - - // *** If not, return false - if ($this->debug) { throw new Exception('Font not found'); }else{ return false; } - } - } - - return $font; - - } - - ## -------------------------------------------------------- - - private function getTextSize($fontSize, $angle, $font, $text) - { - - // *** Define box (so we can get the width) - $box = @imageTTFBbox($fontSize, $angle, $font, $text); - - // *** Get width of text from dimensions - $textWidth = abs($box[4] - $box[0]); - - // *** Get height of text from dimensions (should also be same as $fontSize) - $textHeight = abs($box[5] - $box[1]); - - return array('height' => $textHeight, 'width' => $textWidth); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - Add Watermark -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - public function addWatermark($watermarkImage, $pos, $padding = 0, $opacity = 0) - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Add watermark image - # Param in: (str) $watermark: The watermark image - # (str) $pos: Could be a pre-determined position such as: - # tl = top left, - # t = top (middle), - # tr = top right, - # l = left, - # m = middle, - # r = right, - # bl = bottom left, - # b = bottom (middle), - # br = bottom right - # Or, it could be a co-ordinate position such as: 50x100 - # - # (int) $padding: If using a pre-determined position you can - # adjust the padding from the edges by passing an amount - # in pixels. If using co-ordinates, this value is ignored. - # Param out: - # Reference: http://www.php.net/manual/en/image.examples-watermark.php - # Notes: Based on example in reference. - # - # - { - - // Load the stamp and the photo to apply the watermark to - $stamp = $this->openImage ($watermarkImage); # stamp - $im = $this->imageResized; # photo - - // *** Get stamps width and height - $sx = imagesx($stamp); - $sy = imagesy($stamp); - - // *** Find co-ords to place image - $posArray = $this->calculatePosition($pos, $padding, $sx, $sy); - $x = $posArray['width']; - $y = $posArray['height']; - - // *** Set watermark opacity - if (fix_strtolower(strrchr($watermarkImage, '.')) == '.png') { - - $opacity = $this->invertTransparency($opacity, 100); - $this->filterOpacity($stamp, $opacity); - } - - // Copy the watermark image onto our photo - imagecopy($im, $stamp, $x, $y, 0, 0, imagesx($stamp), imagesy($stamp)); - - } - - ## -------------------------------------------------------- - - private function calculatePosition($pos, $padding, $assetWidth, $assetHeight, $upperLeft = true) - # - # Author: Jarrod Oberto - # Date: 08-05-11 - # Purpose: Calculate the x, y pixel cordinates of the asset to place - # Params in: (str) $pos: Either something like: "tl", "l", "br" or an - # exact position like: "100x50" - # (int) $padding: The amount of padding from the edge. Only - # used for the predefined $pos. - # (int) $assetWidth: The width of the asset to add to the image - # (int) $assetHeight: The height of the asset to add to the image - # (bol) $upperLeft: if true, the asset will be positioned based - # on the upper left x, y coords. If false, it means you're - # using the lower left as the basepoint and this will - # convert it to the upper left position - # Params out: - # NOTE: this is done from the UPPER left corner!! But will convert lower - # left basepoints to upper left if $upperleft is set to false - # - # - { - $pos = fix_strtolower($pos); - - // *** If co-ords have been entered - if (strstr($pos, 'x')) { - $pos = str_replace(' ', '', $pos); - - $xyArray = explode('x', $pos); - list($width, $height) = $xyArray; - - } else { - - switch ($pos) { - case 'tl': - $width = 0 + $padding; - $height = 0 + $padding; - break; - - case 't': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = 0 + $padding; - break; - - case 'tr': - $width = $this->width - $assetWidth - $padding; - $height = 0 + $padding;; - break; - - case 'l': - $width = 0 + $padding; - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'm': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'r': - $width = $this->width - $assetWidth - $padding; - $height = ($this->height / 2) - ($assetHeight / 2); - break; - - case 'bl': - $width = 0 + $padding; - $height = $this->height - $assetHeight - $padding; - break; - - case 'b': - $width = ($this->width / 2) - ($assetWidth / 2); - $height = $this->height - $assetHeight - $padding; - break; - - case 'br': - $width = $this->width - $assetWidth - $padding; - $height = $this->height - $assetHeight - $padding; - break; - - default: - $width = 0; - $height = 0; - break; - } - } - - if (!$upperLeft) { - $height = $height + $assetHeight; - } - - return array('width' => $width, 'height' => $height); - } - - - ## -------------------------------------------------------- - - private function filterOpacity(&$img, $opacity = 75) - # - # Author: aiden dot mail at freemail dot hu - # Author date: 29-03-08 08:16 - # Date added: 08-05-11 - # Purpose: Change opacity of image - # Params in: $img: Image resource id - # (int) $opacity: the opacity amount: 0-100, 100 being not opaque. - # Params out: (bool) true on success, else false - # Ref: http://www.php.net/manual/en/function.imagefilter.php#82162 - # Notes: png only - # - { - - if (!isset($opacity)) { - return false; - } - - if ($opacity == 100) { - return true; - } - - $opacity /= 100; - - //get image width and height - $w = imagesx($img); - $h = imagesy($img); - - //turn alpha blending off - imagealphablending($img, false); - - //find the most opaque pixel in the image (the one with the smallest alpha value) - $minalpha = 127; - for ($x = 0; $x < $w; $x++) - for ($y = 0; $y < $h; $y++) { - $alpha = ( imagecolorat($img, $x, $y) >> 24 ) & 0xFF; - if ($alpha < $minalpha) { - $minalpha = $alpha; - } - } - - //loop through image pixels and modify alpha for each - for ($x = 0; $x < $w; $x++) { - for ($y = 0; $y < $h; $y++) { - //get current alpha value (represents the TANSPARENCY!) - $colorxy = imagecolorat($img, $x, $y); - $alpha = ( $colorxy >> 24 ) & 0xFF; - //calculate new alpha - if ($minalpha !== 127) { - $alpha = 127 + 127 * $opacity * ( $alpha - 127 ) / ( 127 - $minalpha ); - } else { - $alpha += 127 * $opacity; - } - //get the color index with new alpha - $alphacolorxy = imagecolorallocatealpha($img, ( $colorxy >> 16 ) & 0xFF, ( $colorxy >> 8 ) & 0xFF, $colorxy & 0xFF, $alpha); - //set pixel with the new color + opacity - if (!imagesetpixel($img, $x, $y, $alphacolorxy)) { - - return false; - } - } - } - - return true; - } - -## -------------------------------------------------------- - - private function openImage($file) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: - # Param in: - # Param out: n/a - # Reference: - # Notes: - # - { - - if (!file_exists($file) && !$this->checkStringStartsWith('http://', $file)) { if ($this->debug) { throw new Exception('Image not found.'); }else{ throw new Exception(); }}; - - // *** Get extension - $extension = strrchr($file, '.'); - $extension = fix_strtolower($extension); - switch($extension) - { - case '.jpg': - case '.jpeg': - $img = @imagecreatefromjpeg($file); - break; - case '.gif': - $img = @imagecreatefromgif($file); - break; - case '.png': - $img = @imagecreatefrompng($file); - break; - case '.bmp': - $img = @$this->imagecreatefrombmp($file); - break; - case '.psd': - $img = @$this->imagecreatefrompsd($file); - break; - - - // ... etc - - default: - $img = false; - break; - } - - return $img; - } - -## -------------------------------------------------------- - - public function reset() - # - # Author: Jarrod Oberto - # Date: 30-08-11 - # Purpose: Reset the resource (allow further editing) - # Params in: - # Params out: - # Notes: - # - { - $this->__construct($this->fileName); - } - -## -------------------------------------------------------- - - public function saveImage($savePath, $imageQuality="100") - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Saves the image - # Param in: $savePath: Where to save the image including filename: - # $imageQuality: image quality you want the image saved at 0-100 - # Param out: n/a - # Reference: - # Notes: * gif doesn't have a quality parameter - # * jpg has a quality setting 0-100 (100 being the best) - # * png has a quality setting 0-9 (0 being the best) - # - # * bmp files have no native support for bmp files. We use a - # third party class to save as bmp. - { - - // *** Perform a check or two. - if (!is_resource($this->imageResized)) { if ($this->debug) { throw new Exception('saveImage: This is not a resource.'); }else{ throw new Exception(); }} - $fileInfoArray = pathInfo($savePath); - clearstatcache(); - if (!is_writable($fileInfoArray['dirname'])) { if ($this->debug) { throw new Exception('The path is not writable. Please check your permissions.'); }else{ throw new Exception(); }} - - // *** Get extension - $extension = strrchr($savePath, '.'); - $extension = fix_strtolower($extension); - - $error = ''; - - switch($extension) - { - case '.jpg': - case '.jpeg': - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_JPG) { - imagejpeg($this->imageResized, $savePath, $imageQuality); - } else { $error = 'jpg'; } - break; - - case '.gif': - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_GIF) { - imagegif($this->imageResized, $savePath); - } else { $error = 'gif'; } - break; - - case '.png': - // *** Scale quality from 0-100 to 0-9 - $scaleQuality = round(($imageQuality/100) * 9); - - // *** Invert qualit setting as 0 is best, not 9 - $invertScaleQuality = 9 - $scaleQuality; - - $this->checkInterlaceImage($this->isInterlace); - if (imagetypes() & IMG_PNG) { - imagepng($this->imageResized, $savePath, $invertScaleQuality); - } else { $error = 'png'; } - break; - - case '.bmp': - file_put_contents($savePath, $this->GD2BMPstring($this->imageResized)); - break; - - - // ... etc - - default: - // *** No extension - No save. - $this->errorArray[] = 'This file type (' . $extension . ') is not supported. File not saved.'; - break; - } - - //imagedestroy($this->imageResized); - - // *** Display error if a file type is not supported. - if ($error != '') { - $this->errorArray[] = $error . ' support is NOT enabled. File not saved.'; - } - } - -## -------------------------------------------------------- - - public function displayImage($fileType = 'jpg', $imageQuality="100") - # Author: Jarrod Oberto - # Date: 18-11-09 - # Purpose: Display images directly to the browser - # Param in: The image type you want to display - # Param out: - # Reference: - # Notes: - # - { - - if (!is_resource($this->imageResized)) { if ($this->debug) { throw new Exception('saveImage: This is not a resource.'); }else{ throw new Exception(); }} - - switch($fileType) - { - case 'jpg': - case 'jpeg': - header('Content-type: image/jpeg'); - imagejpeg($this->imageResized, '', $imageQuality); - break; - case 'gif': - header('Content-type: image/gif'); - imagegif($this->imageResized); - break; - case 'png': - header('Content-type: image/png'); - - // *** Scale quality from 0-100 to 0-9 - $scaleQuality = round(($imageQuality/100) * 9); - - // *** Invert qualit setting as 0 is best, not 9 - $invertScaleQuality = 9 - $scaleQuality; - - imagepng($this->imageResized, '', $invertScaleQuality); - break; - case 'bmp': - echo 'bmp file format is not supported.'; - break; - - // ... etc - - default: - // *** No extension - No save. - break; - } - - - //imagedestroy($this->imageResized); - } - -## -------------------------------------------------------- - - public function setTransparency($bool) - # Sep 2011 - { - $this->keepTransparency = $bool; - } - -## -------------------------------------------------------- - - public function setFillColor($value) - # Sep 2011 - # Param in: (mixed) $value: (array) Could be an array of RGB - # (str) Could be hex #ffffff or #fff, fff, ffffff - # - # If the keepTransparency is set to false, then no transparency is to be used. - # This is ideal when you want to save as jpg. - # - # this method allows you to set the background color to use instead of - # transparency. - # - { - $colorArray = $this->formatColor($value); - $this->fillColorArray = $colorArray; - } - -## -------------------------------------------------------- - - public function setCropFromTop($value) - # Sep 2011 - { - $this->cropFromTopPercent = $value; - } - -## -------------------------------------------------------- - - public function testGDInstalled() - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test to see if GD is installed - # Param in: n/a - # Param out: (bool) True is gd extension loaded otherwise false - # Reference: - # Notes: - # - { - if(extension_loaded('gd') && function_exists('gd_info')) - { - $gdInstalled = true; - } - else - { - $gdInstalled = false; - } - - return $gdInstalled; - } - -## -------------------------------------------------------- - - public function testEXIFInstalled() - # Author: Jarrod Oberto - # Date: 08-05-11 - # Purpose: Test to see if EXIF is installed - # Param in: n/a - # Param out: (bool) True is exif extension loaded otherwise false - # Reference: - # Notes: - # - { - if(extension_loaded('exif')) - { - $exifInstalled = true; - } - else - { - $exifInstalled = false; - } - - return $exifInstalled; - } - -## -------------------------------------------------------- - - public function testIsImage($image) - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test if file is an image - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - if ($image) - { - $fileIsImage = true; - } - else - { - $fileIsImage = false; - } - - return $fileIsImage; - } - -## -------------------------------------------------------- - - public function testFunct() - # Author: Jarrod Oberto - # Date: 27-02-08 - # Purpose: Test Function - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - echo $this->height; - } - -## -------------------------------------------------------- - - public function setForceStretch($value) - # Author: Jarrod Oberto - # Date: 23-12-10 - # Purpose: - # Param in: (bool) $value - # Param out: n/a - # Reference: - # Notes: - # - { - $this->forceStretch = $value; - } - -## -------------------------------------------------------- - - public function setFile($fileName) - # Author: Jarrod Oberto - # Date: 28-02-08 - # Purpose: - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - self::__construct($fileName); - } - -## -------------------------------------------------------- - - public function getFileName() - # Author: Jarrod Oberto - # Date: 10-09-08 - # Purpose: - # Param in: n/a - # Param out: n/a - # Reference: - # Notes: - # - { - return $this->fileName; - } - -## -------------------------------------------------------- - - public function getHeight() - { - return $this->height; - } - -## -------------------------------------------------------- - - public function getWidth() - { - return $this->width; - } - -## -------------------------------------------------------- - - public function getOriginalHeight() - { - return $this->heightOriginal; - } - -## -------------------------------------------------------- - - public function getOriginalWidth() - { - return $this->widthOriginal; - } - -## -------------------------------------------------------- - - public function getErrors() - # Author: Jarrod Oberto - # Date: 19-11-09 - # Purpose: Returns the error array - # Param in: n/a - # Param out: Array of errors - # Reference: - # Notes: - # - { - return $this->errorArray; - } - -## -------------------------------------------------------- - - private function checkInterlaceImage($isEnabled) - # jpg will use progressive (they don't use interace) - { - if ($isEnabled) { - imageinterlace($this->imageResized, $isEnabled); - } - } - -## -------------------------------------------------------- - - protected function formatColor($value) - # Author: Jarrod Oberto - # Date: 09-05-11 - # Purpose: Determine color method passed in and return color as RGB - # Param in: (mixed) $value: (array) Could be an array of RGB - # (str) Could be hex #ffffff or #fff, fff, ffffff - # Param out: - # Reference: - # Notes: - # - { - $rgbArray = array(); - - // *** If it's an array it should be R, G, B - if (is_array($value)) { - - if (key($value) == 0 && count($value) == 3) { - - $rgbArray['r'] = $value[0]; - $rgbArray['g'] = $value[1]; - $rgbArray['b'] = $value[2]; - - } else { - $rgbArray = $value; - } - } else if (fix_strtolower($value) == 'transparent') { - - $rgbArray = array( - 'r' => 255, - 'g' => 255, - 'b' => 255, - 'a' => 127 - ); - - } else { - - // *** ...Else it should be hex. Let's make it RGB - $rgbArray = $this -> hex2dec($value); - } - - return $rgbArray; - } - - ## -------------------------------------------------------- - - function hex2dec($hex) - # Purpose: Convert #hex color to RGB - { - $color = str_replace('#', '', $hex); - - if (strlen($color) == 3) { - $color = $color . $color; - } - - $rgb = array( - 'r' => hexdec(substr($color, 0, 2)), - 'g' => hexdec(substr($color, 2, 2)), - 'b' => hexdec(substr($color, 4, 2)), - 'a' => 0 - ); - return $rgb; - } - - ## -------------------------------------------------------- - - private function createImageColor ($colorArray) - { - $r = $colorArray['r']; - $g = $colorArray['g']; - $b = $colorArray['b']; - - return imagecolorallocate($this->imageResized, $r, $g, $b); - } - - ## -------------------------------------------------------- - - private function testColorExists($colorArray) - { - $r = $colorArray['r']; - $g = $colorArray['g']; - $b = $colorArray['b']; - - if (imagecolorexact($this->imageResized, $r, $g, $b) == -1) { - return false; - } else { - return true; - } - } - - ## -------------------------------------------------------- - - private function findUnusedGreen() - # Purpose: We find a green color suitable to use like green-screen effect. - # Therefore, the color must not exist in the image. - { - $green = 255; - - do { - - $greenChroma = array(0, $green, 0); - $colorArray = $this->formatColor($greenChroma); - $match = $this->testColorExists($colorArray); - $green--; - - } while ($match == false && $green > 0); - - // *** If no match, just bite the bullet and use green value of 255 - if (!$match) { - $greenChroma = array(0, $green, 0); - } - - return $greenChroma; - } - - ## -------------------------------------------------------- - - private function findUnusedBlue() - # Purpose: We find a green color suitable to use like green-screen effect. - # Therefore, the color must not exist in the image. - { - $blue = 255; - - do { - - $blueChroma = array(0, 0, $blue); - $colorArray = $this->formatColor($blueChroma); - $match = $this->testColorExists($colorArray); - $blue--; - - } while ($match == false && $blue > 0); - - // *** If no match, just bite the bullet and use blue value of 255 - if (!$match) { - $blueChroma = array(0, 0, $blue); - } - - return $blueChroma; - } - - ## -------------------------------------------------------- - - private function invertTransparency($value, $originalMax, $invert=true) - # Purpose: This does two things: - # 1) Convert the range from 0-127 to 0-100 - # 2) Inverts value to 100 is not transparent while 0 is fully - # transparent (like Photoshop) - { - // *** Test max range - if ($value > $originalMax) { - $value = $originalMax; - } - - // *** Test min range - if ($value < 0) { - $value = 0; - } - - if ($invert) { - return $originalMax - (($value/100) * $originalMax); - } else { - return ($value/100) * $originalMax; - } - } - - ## -------------------------------------------------------- - - private function transparentImage($src) - { - // *** making images with white bg transparent - $r1 = 0; - $g1 = 255; - $b1 = 0; - for ($x = 0; $x < imagesx($src); ++$x) { - for ($y = 0; $y < imagesy($src); ++$y) { - $color = imagecolorat($src, $x, $y); - $r = ($color >> 16) & 0xFF; - $g = ($color >> 8) & 0xFF; - $b = $color & 0xFF; - for ($i = 0; $i < 270; $i++) { - //if ($r . $g . $b == ($r1 + $i) . ($g1 + $i) . ($b1 + $i)) { - if ($r == 0 && $g == 255 && $b == 0) { - //if ($g == 255) { - $trans_colour = imagecolorallocatealpha($src, 0, 0, 0, 127); - imagefill($src, $x, $y, $trans_colour); - } - } - } - } - - return $src; - } - - ## -------------------------------------------------------- - - function checkStringStartsWith($needle, $haystack) - # Check if a string starts with a specific pattern - { - return (substr($haystack, 0, strlen($needle))==$needle); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - BMP SUPPORT (SAVING) - James Heinrich -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function GD2BMPstring(&$gd_image) - # Author: James Heinrich - # Purpose: Save file as type bmp - # Param in: The image canvas (passed as ref) - # Param out: - # Reference: - # Notes: This code was stripped out of two external files - # (phpthumb.bmp.php,phpthumb.functions.php) and added below to - # avoid dependancies. - # - { - $imageX = ImageSX($gd_image); - $imageY = ImageSY($gd_image); - - $BMP = ''; - for ($y = ($imageY - 1); $y >= 0; $y--) { - $thisline = ''; - for ($x = 0; $x < $imageX; $x++) { - $argb = $this->GetPixelColor($gd_image, $x, $y); - $thisline .= chr($argb['blue']).chr($argb['green']).chr($argb['red']); - } - while (strlen($thisline) % 4) { - $thisline .= "\x00"; - } - $BMP .= $thisline; - } - - $bmpSize = strlen($BMP) + 14 + 40; - // BITMAPFILEHEADER [14 bytes] - http://msdn.microsoft.com/library/en-us/gdi/bitmaps_62uq.asp - $BITMAPFILEHEADER = 'BM'; // WORD bfType; - $BITMAPFILEHEADER .= $this->LittleEndian2String($bmpSize, 4); // DWORD bfSize; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 0, 2); // WORD bfReserved1; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 0, 2); // WORD bfReserved2; - $BITMAPFILEHEADER .= $this->LittleEndian2String( 54, 4); // DWORD bfOffBits; - - // BITMAPINFOHEADER - [40 bytes] http://msdn.microsoft.com/library/en-us/gdi/bitmaps_1rw2.asp - $BITMAPINFOHEADER = $this->LittleEndian2String( 40, 4); // DWORD biSize; - $BITMAPINFOHEADER .= $this->LittleEndian2String( $imageX, 4); // LONG biWidth; - $BITMAPINFOHEADER .= $this->LittleEndian2String( $imageY, 4); // LONG biHeight; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 1, 2); // WORD biPlanes; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 24, 2); // WORD biBitCount; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biCompression; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biSizeImage; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 2835, 4); // LONG biXPelsPerMeter; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 2835, 4); // LONG biYPelsPerMeter; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biClrUsed; - $BITMAPINFOHEADER .= $this->LittleEndian2String( 0, 4); // DWORD biClrImportant; - - return $BITMAPFILEHEADER.$BITMAPINFOHEADER.$BMP; - } - -## -------------------------------------------------------- - - private function GetPixelColor(&$img, $x, $y) - # Author: James Heinrich - # Purpose: - # Param in: - # Param out: - # Reference: - # Notes: - # - { - if (!is_resource($img)) { - return false; - } - return @ImageColorsForIndex($img, @ImageColorAt($img, $x, $y)); - } - -## -------------------------------------------------------- - - private function LittleEndian2String($number, $minbytes=1) - # Author: James Heinrich - # Purpose: BMP SUPPORT (SAVING) - # Param in: - # Param out: - # Reference: - # Notes: - # - { - $intstring = ''; - while ($number > 0) { - $intstring = $intstring.chr($number & 255); - $number >>= 8; - } - return str_pad($intstring, $minbytes, "\x00", STR_PAD_RIGHT); - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - BMP SUPPORT (READING) -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function ImageCreateFromBMP($filename) - # Author: DHKold - # Date: The 15th of June 2005 - # Version: 2.0B - # Purpose: To create an image from a BMP file. - # Param in: BMP file to open. - # Param out: Return a resource like the other ImageCreateFrom functions - # Reference: http://us3.php.net/manual/en/function.imagecreate.php#53879 - # Bug fix: Author: domelca at terra dot es - # Date: 06 March 2008 - # Fix: Correct 16bit BMP support - # Notes: - # - { - - //Ouverture du fichier en mode binaire - if (! $f1 = fopen($filename,"rb")) return FALSE; - - //1 : Chargement des ent�tes FICHIER - $FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14)); - if ($FILE['file_type'] != 19778) return FALSE; - - //2 : Chargement des ent�tes BMP - $BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'. - '/Vcompression/Vsize_bitmap/Vhoriz_resolution'. - '/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40)); - $BMP['colors'] = pow(2,$BMP['bits_per_pixel']); - - if ($BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset']; - - $BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8; - $BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']); - $BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4); - $BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4); - $BMP['decal'] = 4-(4*$BMP['decal']); - - if ($BMP['decal'] == 4) $BMP['decal'] = 0; - - //3 : Chargement des couleurs de la palette - $PALETTE = array(); - if ($BMP['colors'] < 16777216) - { - $PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4)); - } - - //4 : Cr�ation de l'image - $IMG = fread($f1,$BMP['size_bitmap']); - $VIDE = chr(0); - - $res = imagecreatetruecolor($BMP['width'],$BMP['height']); - $P = 0; - $Y = $BMP['height']-1; - while ($Y >= 0) - { - $X=0; - while ($X < $BMP['width']) - { - if ($BMP['bits_per_pixel'] == 24) - $COLOR = unpack("V",substr($IMG,$P,3).$VIDE); - elseif ($BMP['bits_per_pixel'] == 16) - { - - /* - * BMP 16bit fix - * ================= - * - * Ref: http://us3.php.net/manual/en/function.imagecreate.php#81604 - * - * Notes: - * "don't work with bmp 16 bits_per_pixel. change pixel - * generator for this." - * - */ - - // *** Original code (don't work) - //$COLOR = unpack("n",substr($IMG,$P,2)); - //$COLOR[1] = $PALETTE[$COLOR[1]+1]; - - $COLOR = unpack("v",substr($IMG,$P,2)); - $blue = ($COLOR[1] & 0x001f) << 3; - $green = ($COLOR[1] & 0x07e0) >> 3; - $red = ($COLOR[1] & 0xf800) >> 8; - $COLOR[1] = $red * 65536 + $green * 256 + $blue; - - } - elseif ($BMP['bits_per_pixel'] == 8) - { - $COLOR = unpack("n",$VIDE.substr($IMG,$P,1)); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - elseif ($BMP['bits_per_pixel'] == 4) - { - $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); - if (($P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - elseif ($BMP['bits_per_pixel'] == 1) - { - $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); - if (($P*8)%8 == 0) $COLOR[1] = $COLOR[1] >>7; - elseif (($P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6; - elseif (($P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5; - elseif (($P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4; - elseif (($P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3; - elseif (($P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2; - elseif (($P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1; - elseif (($P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1); - $COLOR[1] = $PALETTE[$COLOR[1]+1]; - } - else - return FALSE; - - imagesetpixel($res,$X,$Y,$COLOR[1]); - $X++; - $P += $BMP['bytes_per_pixel']; - } - - $Y--; - $P+=$BMP['decal']; - } - //Fermeture du fichier - fclose($f1); - - return $res; - } - - -/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*- - PSD SUPPORT (READING) -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*-*-*-*-*-*-*/ - - private function imagecreatefrompsd($fileName) - # Author: Tim de Koning - # Version: 1.3 - # Purpose: To create an image from a PSD file. - # Param in: PSD file to open. - # Param out: Return a resource like the other ImageCreateFrom functions - # Reference: http://www.kingsquare.nl/phppsdreader - # Notes: - # - { - if (file_exists($this->psdReaderPath)) { - - - include_once($this->psdReaderPath); - - $psdReader = new PhpPsdReader($fileName); - - if (isset($psdReader->infoArray['error'])) return ''; - else return $psdReader->getImage(); - } else { - return false; - } - } - -## -------------------------------------------------------- - - public function __destruct() { - if (is_resource($this->imageResized)) { - imagedestroy($this->imageResized); - } - } - -## -------------------------------------------------------- - -} - - - - -/* - * Example with some API calls (outdated): - * - * - * =============================== - * Compulsary - * =============================== - * - * include("classes/resize_class.php"); - * - * // *** Initialise object - * $magicianObj = new resize('images/cars/large/a.jpg'); - * - * // *** Turn off stretching (optional) - * $magicianObj -> setForceStretch(false); - * - * // *** Resize object - * $magicianObj -> resizeImage(150, 100, 0); - * - * =============================== - * Image options - can run none, one, or all. - * =============================== - * - * // *** Add watermark - * $magicianObj -> addWatermark('stamp.png'); - * - * // *** Add text - * $magicianObj -> addText('testing...'); - * - * =============================== - * Output options - can run one, or the other, or both. - * =============================== - * - * // *** Save image to disk - * $magicianObj -> saveImage('images/cars/large/b.jpg', 100); - * - * // *** Or output to screen (params in can be jpg, gif, png) - * $magicianObj -> displayImage('png'); - * - * =============================== - * Return options - return errors. nice for debuggin. - * =============================== - * - * // *** Return error array - * $errorArray = $magicianObj -> getErrors(); - * - * - * =============================== - * Cleanup options - not really neccessary, but good practice - * =============================== - * - * // *** Free used memory - * $magicianObj -> __destruct(); - */ -?> \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php deleted file mode 100644 index 73819a48..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/include/utils.php +++ /dev/null @@ -1,486 +0,0 @@ - resizeImage($newwidth, $newheight, 'crop'); - $magicianObj -> saveImage($imgthumb,80); - return true; - } - return false; -} - -function create_img($imgfile, $imgthumb, $newwidth, $newheight="") { - if(image_check_memory_usage($imgfile,$newwidth,$newheight)){ - require_once('php_image_magician.php'); - $magicianObj = new imageLib($imgfile); - $magicianObj -> resizeImage($newwidth, $newheight, 'auto'); - $magicianObj -> saveImage($imgthumb,80); - return true; - }else{ - return false; - } -} - -function makeSize($size) { - $units = array('B','KB','MB','GB','TB'); - $u = 0; - while ( (round($size / 1024) > 0) && ($u < 4) ) { - $size = $size / 1024; - $u++; - } - return (number_format($size, 0) . " " . $units[$u]); -} - -function foldersize($path) { - $total_size = 0; - $files = scandir($path); - $cleanPath = rtrim($path, '/'). '/'; - - foreach($files as $t) { - if ($t != "." && $t != "..") { - $currentFile = $cleanPath . $t; - if (is_dir($currentFile)) { - $size = foldersize($currentFile); - $total_size += $size; - } - else { - $size = filesize($currentFile); - $total_size += $size; - } - } - } - - return $total_size; -} - -function filescount($path) { - $total_count = 0; - $files = scandir($path); - $cleanPath = rtrim($path, '/'). '/'; - - foreach($files as $t) { - if ($t != "." && $t != "..") { - $currentFile = $cleanPath . $t; - if (is_dir($currentFile)) { - $size = filescount($currentFile); - $total_count += $size; - } - else { - $total_count += 1; - } - } - } - - return $total_count; -} - -function create_folder($path=false,$path_thumbs=false){ - $oldumask = umask(0); - if ($path && !file_exists($path)) - mkdir($path, 0777, true); // or even 01777 so you get the sticky bit set - if($path_thumbs && !file_exists($path_thumbs)) - mkdir($path_thumbs, 0777, true) or die("$path_thumbs cannot be found"); // or even 01777 so you get the sticky bit set - umask($oldumask); -} - -function check_files_extensions_on_path($path,$ext){ - if(!is_dir($path)){ - $fileinfo = pathinfo($path); - if(!in_array(mb_strtolower($fileinfo['extension']),$ext)) - unlink($path); - }else{ - $files = scandir($path); - foreach($files as $file){ - check_files_extensions_on_path(trim($path,'/')."/".$file,$ext); - } - } -} - -function check_files_extensions_on_phar( $phar, &$files, $basepath, $ext ) { - foreach( $phar as $file ) - { - if( $file->isFile() ) - { - if(in_array(mb_strtolower($file->getExtension()),$ext)) - { - $files[] = $basepath.$file->getFileName( ); - } - } - else if( $file->isDir() ) - { - $iterator = new DirectoryIterator( $file ); - check_files_extensions_on_phar($iterator, $files, $basepath.$file->getFileName().'/', $ext); - } - } -} - -function fix_get_params($str){ - return strip_tags(preg_replace( "/[^a-zA-Z0-9\.\[\]_| -]/", '', $str)); -} - -function fix_filename($str,$transliteration){ - if($transliteration){ - if( function_exists( 'transliterator_transliterate' ) ) - { - $str = transliterator_transliterate( 'Accents-Any', $str ); - } - else - { - $str = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $str); - } - - $str = preg_replace( "/[^a-zA-Z0-9\.\[\]_| -]/", '', $str ); - } - - $str=str_replace(array('"',"'","/","\\"),"",$str); - $str=strip_tags($str); - - // Empty or incorrectly transliterated filename. - // Here is a point: a good file UNKNOWN_LANGUAGE.jpg could become .jpg in previous code. - // So we add that default 'file' name to fix that issue. - if( strpos( $str, '.' ) === 0 ) - { - $str = 'file'.$str; - } - - return trim( $str ); -} - -function fix_dirname($str){ - return str_replace('~',' ',dirname(str_replace(' ','~',$str))); -} - -function fix_strtoupper($str){ - if( function_exists( 'mb_strtoupper' ) ) - return mb_strtoupper($str); - else - return strtoupper($str); -} - - -function fix_strtolower($str){ - if( function_exists( 'mb_strtoupper' ) ) - return mb_strtolower($str); - else - return strtolower($str); -} - -function fix_path($path,$transliteration){ - $info=pathinfo($path); - $tmp_path = $info['dirname']; - $str=fix_filename($info['filename'],$transliteration); - if($tmp_path!="") - return $tmp_path.DIRECTORY_SEPARATOR.$str; - else - return $str; -} - -function base_url(){ - return sprintf( - "%s://%s", - isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http', - $_SERVER['HTTP_HOST'] - ); -} - -function config_loading($current_path,$fld){ - if(file_exists($current_path.$fld.".config")){ - require_once($current_path.$fld.".config"); - return true; - } - echo "!!!!".$parent=fix_dirname($fld); - if($parent!="." && !empty($parent)){ - config_loading($current_path,$parent); - } - - return false; -} - - -function image_check_memory_usage($img, $max_breedte, $max_hoogte){ - if(file_exists($img)){ - $K64 = 65536; // number of bytes in 64K - $memory_usage = memory_get_usage(); - $memory_limit = abs(intval(str_replace('M','',ini_get('memory_limit'))*1024*1024)); - $image_properties = getimagesize($img); - $image_width = $image_properties[0]; - $image_height = $image_properties[1]; - $image_bits = $image_properties['bits']; - $image_memory_usage = $K64 + ($image_width * $image_height * ($image_bits ) * 2); - $thumb_memory_usage = $K64 + ($max_breedte * $max_hoogte * ($image_bits ) * 2); - $memory_needed = intval($memory_usage + $image_memory_usage + $thumb_memory_usage); - - if($memory_needed > $memory_limit){ - ini_set('memory_limit',(intval($memory_needed/1024/1024)+5) . 'M'); - if(ini_get('memory_limit') == (intval($memory_needed/1024/1024)+5) . 'M'){ - return true; - }else{ - return false; - } - }else{ - return true; - } - }else{ - return false; - } -} - -function endsWith($haystack, $needle) -{ - return $needle === "" || substr($haystack, -strlen($needle)) === $needle; -} - -function new_thumbnails_creation($targetPath,$targetFile,$name,$current_path,$relative_image_creation,$relative_path_from_current_pos,$relative_image_creation_name_to_prepend,$relative_image_creation_name_to_append,$relative_image_creation_width,$relative_image_creation_height,$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height){ - //create relative thumbs - $all_ok=true; - if($relative_image_creation){ - foreach($relative_path_from_current_pos as $k=>$path){ - if($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - if (!file_exists($targetPath.$path)) create_folder($targetPath.$path,false); - $info=pathinfo($name); - if(!endsWith($targetPath,$path)) - if(!create_img($targetFile, $targetPath.$path.$relative_image_creation_name_to_prepend[$k].$info['filename'].$relative_image_creation_name_to_append[$k].".".$info['extension'], $relative_image_creation_width[$k], $relative_image_creation_height[$k])) - $all_ok=false; - } - } - - //create fixed thumbs - if($fixed_image_creation){ - foreach($fixed_path_from_filemanager as $k=>$path){ - if($path!="" && $path[strlen($path)-1]!="/") $path.="/"; - $base_dir=$path.substr_replace($targetPath, '', 0, strlen($current_path)); - if (!file_exists($base_dir)) create_folder($base_dir,false); - $info=pathinfo($name); - if(!create_img($targetFile, $base_dir.$fixed_image_creation_name_to_prepend[$k].$info['filename'].$fixed_image_creation_to_append[$k].".".$info['extension'], $fixed_image_creation_width[$k], $fixed_image_creation_height[$k])) - $all_ok=false; - } - } - return $all_ok; -} - - -// Get a remote file, using whichever mechanism is enabled -function get_file_by_url($url) { - if (ini_get('allow_url_fopen')) { - return file_get_contents($url); - } - if (!function_exists('curl_version')) { - return false; - } - - $ch = curl_init(); - - curl_setopt($ch, CURLOPT_HEADER, 0); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_URL, $url); - - $data = curl_exec($ch); - curl_close($ch); - - return $data; -} - -// test for dir/file writability properly -function is_really_writable($dir){ - $dir = rtrim($dir, '/'); - // linux, safe off - if (DIRECTORY_SEPARATOR == '/' && @ini_get("safe_mode") == FALSE){ - return is_writable($dir); - } - - // Windows, safe ON. (have to write a file :S) - if (is_dir($dir)){ - $dir = $dir.'/'.md5(mt_rand(1,1000).mt_rand(1,1000)); - - if (($fp = @fopen($dir, 'ab')) === FALSE){ - return FALSE; - } - - fclose($fp); - @chmod($dir, 0777); - @unlink($dir); - return TRUE; - } - elseif ( ! is_file($dir) || ($fp = @fopen($dir, 'ab')) === FALSE){ - return FALSE; - } - - fclose($fp); - return TRUE; -} - -/** - * Check if a function is callable. - * Some servers disable copy,rename etc. - * - * Returns TRUE if callable and everything is OK - * Otherwise returns FALSE - */ -function is_function_callable($name){ - if (function_exists($name) === FALSE) return FALSE; - $disabled = explode(',', ini_get('disable_functions')); - return !in_array($name, $disabled); -} - -// recursivly copies everything -function rcopy($source, $destination, $is_rec = FALSE) { - if (is_dir($source)) { - if ($is_rec === FALSE){ - $pinfo = pathinfo($source); - $destination = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - if (is_dir($destination) === FALSE){ - mkdir($destination, 0777, true); - } - - $files = scandir($source); - foreach ($files as $file){ - if ($file != "." && $file != "..") { - rcopy($source.DIRECTORY_SEPARATOR.$file, rtrim($destination, '/').DIRECTORY_SEPARATOR.$file, TRUE); - } - } - } - else { - if (file_exists($source)){ - if (is_dir($destination) === TRUE){ - $pinfo = pathinfo($source); - $dest2 = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - else { - $dest2 = $destination; - } - - copy($source, $dest2); - } - } -} - -// recursivly renames everything -// I know copy and rename could be done with just one function -// but i split the 2 because sometimes rename fails on windows -// Need more feedback from users and refactor if needed -function rrename($source, $destination, $is_rec = FALSE) { - if (is_dir($source)) { - if ($is_rec === FALSE){ - $pinfo = pathinfo($source); - $destination = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - if (is_dir($destination) === FALSE){ - mkdir($destination, 0777, true); - } - - $files = scandir($source); - foreach ($files as $file){ - if ($file != "." && $file != "..") { - rrename($source.DIRECTORY_SEPARATOR.$file, rtrim($destination, '/').DIRECTORY_SEPARATOR.$file, TRUE); - } - } - } - else { - if (file_exists($source)){ - if (is_dir($destination) === TRUE){ - $pinfo = pathinfo($source); - $dest2 = rtrim($destination, '/').DIRECTORY_SEPARATOR.$pinfo['basename']; - } - else { - $dest2 = $destination; - } - - rename($source, $dest2); - } - } -} - -// On windows rename leaves folders sometime -// This will clear leftover folders -// After more feedback will merge it with rrename -function rrename_after_cleaner($source) { - $files = scandir($source); - - foreach ($files as $file) { - if ($file != "." && $file != "..") { - if (is_dir($source.DIRECTORY_SEPARATOR.$file)){ - rrename_after_cleaner($source.DIRECTORY_SEPARATOR.$file); - } - else { - unlink($source.DIRECTORY_SEPARATOR.$file); - } - } - } - - return rmdir($source); -} - -function debugger($input, $trace = FALSE, $halt = FALSE){ - ob_start(); - - echo "
    ----- DEBUG DUMP -----"; - echo "
    ";
    -    var_dump($input);
    -    echo "
    "; - - if ($trace){ - $debug = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); - - echo "
    -----STACK TRACE-----"; - echo "
    ";
    -        var_dump($debug);
    -        echo "
    "; - } - - echo ""; - echo "---------------------------
    "; - - $ret = ob_get_contents(); - ob_end_clean(); - - echo $ret; - - if ($halt == TRUE){ - exit(); - } -} - -?> \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf deleted file mode 100644 index 85c0ba38..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/Jplayer.swf and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jplayer.playlist.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jplayer.playlist.min.js deleted file mode 100644 index 138ccfa5..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/add-on/jplayer.playlist.min.js +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Playlist Object for the jPlayer Plugin - * http://www.jplayer.org - * - * Copyright (c) 2009 - 2013 Happyworm Ltd - * Dual licensed under the MIT and GPL licenses. - * - http://www.opensource.org/licenses/mit-license.php - * - http://www.gnu.org/copyleft/gpl.html - * - * Author: Mark J Panaghiston - * Version: 2.3.0 - * Date: 20th April 2013 - * - * Requires: - * - jQuery 1.7.0+ - * - jPlayer 2.3.0+ - */ -(function(b,f){jPlayerPlaylist=function(a,c,d){var e=this;this.current=0;this.removing=this.shuffled=this.loop=!1;this.cssSelector=b.extend({},this._cssSelector,a);this.options=b.extend(!0,{keyBindings:{next:{key:39,fn:function(){e.next()}},previous:{key:37,fn:function(){e.previous()}}}},this._options,d);this.playlist=[];this.original=[];this._initPlaylist(c);this.cssSelector.title=this.cssSelector.cssSelectorAncestor+" .jp-title";this.cssSelector.playlist=this.cssSelector.cssSelectorAncestor+" .jp-playlist"; -this.cssSelector.next=this.cssSelector.cssSelectorAncestor+" .jp-next";this.cssSelector.previous=this.cssSelector.cssSelectorAncestor+" .jp-previous";this.cssSelector.shuffle=this.cssSelector.cssSelectorAncestor+" .jp-shuffle";this.cssSelector.shuffleOff=this.cssSelector.cssSelectorAncestor+" .jp-shuffle-off";this.options.cssSelectorAncestor=this.cssSelector.cssSelectorAncestor;this.options.repeat=function(a){e.loop=a.jPlayer.options.loop};b(this.cssSelector.jPlayer).bind(b.jPlayer.event.ready,function(){e._init()}); -b(this.cssSelector.jPlayer).bind(b.jPlayer.event.ended,function(){e.next()});b(this.cssSelector.jPlayer).bind(b.jPlayer.event.play,function(){b(this).jPlayer("pauseOthers")});b(this.cssSelector.jPlayer).bind(b.jPlayer.event.resize,function(a){a.jPlayer.options.fullScreen?b(e.cssSelector.title).show():b(e.cssSelector.title).hide()});b(this.cssSelector.previous).click(function(){e.previous();b(this).blur();return!1});b(this.cssSelector.next).click(function(){e.next();b(this).blur();return!1});b(this.cssSelector.shuffle).click(function(){e.shuffle(!0); -return!1});b(this.cssSelector.shuffleOff).click(function(){e.shuffle(!1);return!1}).hide();this.options.fullScreen||b(this.cssSelector.title).hide();b(this.cssSelector.playlist+" ul").empty();this._createItemHandlers();b(this.cssSelector.jPlayer).jPlayer(this.options)};jPlayerPlaylist.prototype={_cssSelector:{jPlayer:"#jquery_jplayer_1",cssSelectorAncestor:"#jp_container_1"},_options:{playlistOptions:{autoPlay:!1,loopOnPrevious:!1,shuffleOnLoop:!0,enableRemoveControls:!1,displayTime:"slow",addTime:"fast", -removeTime:"fast",shuffleTime:"slow",itemClass:"jp-playlist-item",freeGroupClass:"jp-free-media",freeItemClass:"jp-playlist-item-free",removeItemClass:"jp-playlist-item-remove"}},option:function(a,b){if(b===f)return this.options.playlistOptions[a];this.options.playlistOptions[a]=b;switch(a){case "enableRemoveControls":this._updateControls();break;case "itemClass":case "freeGroupClass":case "freeItemClass":case "removeItemClass":this._refresh(!0),this._createItemHandlers()}return this},_init:function(){var a= -this;this._refresh(function(){a.options.playlistOptions.autoPlay?a.play(a.current):a.select(a.current)})},_initPlaylist:function(a){this.current=0;this.removing=this.shuffled=!1;this.original=b.extend(!0,[],a);this._originalPlaylist()},_originalPlaylist:function(){var a=this;this.playlist=[];b.each(this.original,function(b){a.playlist[b]=a.original[b]})},_refresh:function(a){var c=this;if(a&&!b.isFunction(a))b(this.cssSelector.playlist+" ul").empty(),b.each(this.playlist,function(a){b(c.cssSelector.playlist+ -" ul").append(c._createListItem(c.playlist[a]))}),this._updateControls();else{var d=b(this.cssSelector.playlist+" ul").children().length?this.options.playlistOptions.displayTime:0;b(this.cssSelector.playlist+" ul").slideUp(d,function(){var d=b(this);b(this).empty();b.each(c.playlist,function(a){d.append(c._createListItem(c.playlist[a]))});c._updateControls();b.isFunction(a)&&a();c.playlist.length?b(this).slideDown(c.options.playlistOptions.displayTime):b(this).show()})}},_createListItem:function(a){var c= -this,d="
  • ",d=d+("×");if(a.free){var e=!0,d=d+("(");b.each(a,function(a,f){b.jPlayer.prototype.format[a]&&(e?e=!1:d+=" | ",d+=""+a+"")});d+=")"}d+=""+a.title+(a.artist? -" ":"")+"";return d+="
  • "},_createItemHandlers:function(){var a=this;b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.itemClass).on("click","a."+this.options.playlistOptions.itemClass,function(){var c=b(this).parent().parent().index();a.current!==c?a.play(c):b(a.cssSelector.jPlayer).jPlayer("play");b(this).blur();return!1});b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.freeItemClass).on("click", -"a."+this.options.playlistOptions.freeItemClass,function(){b(this).parent().parent().find("."+a.options.playlistOptions.itemClass).click();b(this).blur();return!1});b(this.cssSelector.playlist).off("click","a."+this.options.playlistOptions.removeItemClass).on("click","a."+this.options.playlistOptions.removeItemClass,function(){var c=b(this).parent().parent().index();a.remove(c);b(this).blur();return!1})},_updateControls:function(){this.options.playlistOptions.enableRemoveControls?b(this.cssSelector.playlist+ -" ."+this.options.playlistOptions.removeItemClass).show():b(this.cssSelector.playlist+" ."+this.options.playlistOptions.removeItemClass).hide();this.shuffled?(b(this.cssSelector.shuffleOff).show(),b(this.cssSelector.shuffle).hide()):(b(this.cssSelector.shuffleOff).hide(),b(this.cssSelector.shuffle).show())},_highlight:function(a){this.playlist.length&&a!==f&&(b(this.cssSelector.playlist+" .jp-playlist-current").removeClass("jp-playlist-current"),b(this.cssSelector.playlist+" li:nth-child("+(a+1)+ -")").addClass("jp-playlist-current").find(".jp-playlist-item").addClass("jp-playlist-current"),b(this.cssSelector.title+" li").html(this.playlist[a].title+(this.playlist[a].artist?" ":"")))},setPlaylist:function(a){this._initPlaylist(a);this._init()},add:function(a,c){b(this.cssSelector.playlist+" ul").append(this._createListItem(a)).find("li:last-child").hide().slideDown(this.options.playlistOptions.addTime);this._updateControls();this.original.push(a); -this.playlist.push(a);c?this.play(this.playlist.length-1):1===this.original.length&&this.select(0)},remove:function(a){var c=this;if(a===f)return this._initPlaylist([]),this._refresh(function(){b(c.cssSelector.jPlayer).jPlayer("clearMedia")}),!0;if(this.removing)return!1;a=0>a?c.original.length+a:a;0<=a&&aa?this.original.length+a:a;0<=a&&aa?this.original.length+a:a;0<=a&&a' + (config.visible ? "Hide" : "Show") + ' jPlayer Inspector

    ' - + '
    ' - + '
    ' - + '
    ' - + '

    jPlayer events that have occurred over the past 1 second:' - + '
    (Backgrounds: Never occurred Occurred before Occurred Multiple occurrences reset)

    '; - - // MJP: Would use the next 3 lines for ease, but the events are just slapped on the page. - // $.each($.jPlayer.event, function(eventName,eventType) { - // structure += '
    ' + eventName + '
    '; - // }); - - var eventStyle = "float:left;margin:0 5px 5px 0;padding:0 5px;border:1px dotted #000;"; - // MJP: Doing it longhand so order and layout easier to control. - structure += - '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - + '
    ' - - + '
    '; - - // MJP: Would like a check here in case we missed an event. - - // MJP: Check fails, since it is not on the page yet. -/* $.each($.jPlayer.event, function(eventName,eventType) { - if($("#" + config.eventId[eventType])[0] === undefined) { - structure += '
    ' + eventName + '
    '; - } - }); -*/ - structure += - '
    ' - + '

    Update jPlayer Inspector

    ' - + '
    ' - + '
    '; - $(this).html(structure); - - config.windowJq = $("#" + config.windowId); - config.statusJq = $("#" + config.statusId); - config.configJq = $("#" + config.configId); - config.toggleJq = $("#" + config.toggleId); - config.eventResetJq = $("#" + config.eventResetId); - config.updateJq = $("#" + config.updateId); - - $.each($.jPlayer.event, function(eventName,eventType) { - config.eventJq[eventType] = $("#" + config.eventId[eventType]); - config.eventJq[eventType].text(eventName + " (" + config.eventOccurrence[eventType] + ")"); // Sets the text to the event name and (0); - - config.jPlayer.bind(eventType + ".jPlayerInspector", function(e) { - config.eventOccurrence[e.type]++; - if(config.eventOccurrence[e.type] > 1) { - config.eventJq[e.type].css("background-color","#ff9"); - } else { - config.eventJq[e.type].css("background-color","#9f9"); - } - config.eventJq[e.type].text(eventName + " (" + config.eventOccurrence[e.type] + ")"); - // The timer to handle the color - clearTimeout(config.eventTimeout[e.type]); - config.eventTimeout[e.type] = setTimeout(function() { - config.eventJq[e.type].css("background-color","#fff"); - }, 1000); - // The timer to handle the occurences. - setTimeout(function() { - config.eventOccurrence[e.type]--; - config.eventJq[e.type].text(eventName + " (" + config.eventOccurrence[e.type] + ")"); - }, 1000); - if(config.visible) { // Update the status, if inspector open. - $this.jPlayerInspector("updateStatus"); - } - }); - }); - - config.jPlayer.bind($.jPlayer.event.ready + ".jPlayerInspector", function(e) { - $this.jPlayerInspector("updateConfig"); - }); - - config.toggleJq.click(function() { - if(config.visible) { - $(this).text("Show"); - config.windowJq.hide(); - config.statusJq.empty(); - config.configJq.empty(); - } else { - $(this).text("Hide"); - config.windowJq.show(); - config.updateJq.click(); - } - config.visible = !config.visible; - $(this).blur(); - return false; - }); - - config.eventResetJq.click(function() { - $.each($.jPlayer.event, function(eventName,eventType) { - config.eventJq[eventType].css("background-color","#eee"); - }); - $(this).blur(); - return false; - }); - - config.updateJq.click(function() { - $this.jPlayerInspector("updateStatus"); - $this.jPlayerInspector("updateConfig"); - return false; - }); - - if(!config.visible) { - config.windowJq.hide(); - } else { - // config.updateJq.click(); - } - - $.jPlayerInspector.i++; - - return this; - }, - destroy: function() { - $(this).data("jPlayerInspector") && $(this).data("jPlayerInspector").jPlayer.unbind(".jPlayerInspector"); - $(this).empty(); - }, - updateConfig: function() { // This displays information about jPlayer's configuration in inspector - - var jPlayerInfo = "

    This jPlayer instance is running in your browser where:
    " - - for(i = 0; i < $(this).data("jPlayerInspector").jPlayer.data("jPlayer").solutions.length; i++) { - var solution = $(this).data("jPlayerInspector").jPlayer.data("jPlayer").solutions[i]; - jPlayerInfo += " jPlayer's " + solution + " solution is"; - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].used) { - jPlayerInfo += " being used and will support:"; - for(format in $(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].support) { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer")[solution].support[format]) { - jPlayerInfo += " " + format; - } - } - jPlayerInfo += "
    "; - } else { - jPlayerInfo += " not required
    "; - } - } - jPlayerInfo += "

    "; - - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.active) { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").flash.active) { - jPlayerInfo += "Problem with jPlayer since both HTML5 and Flash are active."; - } else { - jPlayerInfo += "The HTML5 is active."; - } - } else { - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").flash.active) { - jPlayerInfo += "The Flash is active."; - } else { - jPlayerInfo += "No solution is currently active. jPlayer needs a setMedia()."; - } - } - jPlayerInfo += "

    "; - - var formatType = $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.formatType; - jPlayerInfo += "

    status.formatType = '" + formatType + "'
    "; - if(formatType) { - jPlayerInfo += "Browser canPlay('" + $.jPlayer.prototype.format[formatType].codec + "')"; - } else { - jPlayerInfo += "

    "; - } - - jPlayerInfo += "

    status.src = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.src + "'

    "; - - jPlayerInfo += "

    status.media = {
    "; - for(prop in $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.media) { - jPlayerInfo += " " + prop + ": " + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.media[prop] + "
    "; // Some are strings - } - jPlayerInfo += "};

    " - - jPlayerInfo += "

    "; - jPlayerInfo += "status.videoWidth = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.videoWidth + "'"; - jPlayerInfo += " | status.videoHeight = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.videoHeight + "'"; - jPlayerInfo += "
    status.width = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.width + "'"; - jPlayerInfo += " | status.height = '" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.height + "'"; - jPlayerInfo += "

    "; - - + "

    Raw browser test for HTML5 support. Should equal a function if HTML5 is available.
    "; - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.audio.available) { - jPlayerInfo += "htmlElement.audio.canPlayType = " + (typeof $(this).data("jPlayerInspector").jPlayer.data("jPlayer").htmlElement.audio.canPlayType) +"
    " - } - if($(this).data("jPlayerInspector").jPlayer.data("jPlayer").html.video.available) { - jPlayerInfo += "htmlElement.video.canPlayType = " + (typeof $(this).data("jPlayerInspector").jPlayer.data("jPlayer").htmlElement.video.canPlayType) +""; - } - jPlayerInfo += "

    "; - - jPlayerInfo += "

    This instance is using the constructor options:
    " - + "$('#" + $(this).data("jPlayerInspector").jPlayer.data("jPlayer").internal.self.id + "').jPlayer({
    " - - + " swfPath: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "swfPath") + "',
    " - - + " solution: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "solution") + "',
    " - - + " supplied: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "supplied") + "',
    " - - + " preload: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "preload") + "',
    " - - + " volume: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "volume") + ",
    " - - + " muted: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "muted") + ",
    " - - + " backgroundColor: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "backgroundColor") + "',
    " - - + " cssSelectorAncestor: '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelectorAncestor") + "',
    " - - + " cssSelector: {"; - - var cssSelector = $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelector"); - for(prop in cssSelector) { - - // jPlayerInfo += "
      " + prop + ": '" + cssSelector[prop] + "'," // This works too of course, but want to use option method for deep keys. - jPlayerInfo += "
      " + prop + ": '" + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "cssSelector." + prop) + "'," - } - - jPlayerInfo = jPlayerInfo.slice(0, -1); // Because the sloppy comma was bugging me. - - jPlayerInfo += "
     },
    " - - + " errorAlerts: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "errorAlerts") + ",
    " - - + " warningAlerts: " + $(this).data("jPlayerInspector").jPlayer.jPlayer("option", "warningAlerts") + "
    " - - + "});

    "; - $(this).data("jPlayerInspector").configJq.html(jPlayerInfo); - return this; - }, - updateStatus: function() { // This displays information about jPlayer's status in the inspector - $(this).data("jPlayerInspector").statusJq.html( - "

    jPlayer is " + - ($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.paused ? "paused" : "playing") + - " at time: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentTime*10)/10 + "s." + - " (d: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.duration*10)/10 + "s" + - ", sp: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.seekPercent) + "%" + - ", cpr: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentPercentRelative) + "%" + - ", cpa: " + Math.floor($(this).data("jPlayerInspector").jPlayer.data("jPlayer").status.currentPercentAbsolute) + "%)

    " - ); - return this; - } - }; - $.fn.jPlayerInspector = function( method ) { - // Method calling logic - if ( methods[method] ) { - return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); - } else if ( typeof method === 'object' || ! method ) { - return methods.init.apply( this, arguments ); - } else { - $.error( 'Method ' + method + ' does not exist on jQuery.jPlayerInspector' ); - } - }; -})(jQuery); diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js deleted file mode 100644 index ecd3ab51..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/jquery.jplayer.min.js +++ /dev/null @@ -1,107 +0,0 @@ -/* - * jPlayer Plugin for jQuery JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2009 - 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Mark J Panaghiston - * Version: 2.4.0 - * Date: 5th June 2013 - */ - -(function(b,f){"function"===typeof define&&define.amd?define(["jquery"],f):b.jQuery?f(b.jQuery):f(b.Zepto)})(this,function(b,f){b.fn.jPlayer=function(a){var c="string"===typeof a,d=Array.prototype.slice.call(arguments,1),e=this;a=!c&&d.length?b.extend.apply(null,[!0,a].concat(d)):a;if(c&&"_"===a.charAt(0))return e;c?this.each(function(){var c=b(this).data("jPlayer"),h=c&&b.isFunction(c[a])?c[a].apply(c,d):c;if(h!==c&&h!==f)return e=h,!1}):this.each(function(){var c=b(this).data("jPlayer");c?c.option(a|| -{}):b(this).data("jPlayer",new b.jPlayer(a,this))});return e};b.jPlayer=function(a,c){if(arguments.length){this.element=b(c);this.options=b.extend(!0,{},this.options,a);var d=this;this.element.bind("remove.jPlayer",function(){d.destroy()});this._init()}};"function"!==typeof b.fn.stop&&(b.fn.stop=function(){});b.jPlayer.emulateMethods="load play pause";b.jPlayer.emulateStatus="src readyState networkState currentTime duration paused ended playbackRate";b.jPlayer.emulateOptions="muted volume";b.jPlayer.reservedEvent= -"ready flashreset resize repeat error warning";b.jPlayer.event={};b.each("ready flashreset resize repeat click error warning loadstart progress suspend abort emptied stalled play pause loadedmetadata loadeddata waiting playing canplay canplaythrough seeking seeked timeupdate ended ratechange durationchange volumechange".split(" "),function(){b.jPlayer.event[this]="jPlayer_"+this});b.jPlayer.htmlEvent="loadstart abort emptied stalled loadedmetadata loadeddata canplay canplaythrough ratechange".split(" "); -b.jPlayer.pause=function(){b.each(b.jPlayer.prototype.instances,function(a,c){c.data("jPlayer").status.srcSet&&c.jPlayer("pause")})};b.jPlayer.timeFormat={showHour:!1,showMin:!0,showSec:!0,padHour:!1,padMin:!0,padSec:!0,sepHour:":",sepMin:":",sepSec:""};var l=function(){this.init()};l.prototype={init:function(){this.options={timeFormat:b.jPlayer.timeFormat}},time:function(a){var c=new Date(1E3*(a&&"number"===typeof a?a:0)),b=c.getUTCHours();a=this.options.timeFormat.showHour?c.getUTCMinutes():c.getUTCMinutes()+ -60*b;c=this.options.timeFormat.showMin?c.getUTCSeconds():c.getUTCSeconds()+60*a;b=this.options.timeFormat.padHour&&10>b?"0"+b:b;a=this.options.timeFormat.padMin&&10>a?"0"+a:a;c=this.options.timeFormat.padSec&&10>c?"0"+c:c;b=""+(this.options.timeFormat.showHour?b+this.options.timeFormat.sepHour:"");b+=this.options.timeFormat.showMin?a+this.options.timeFormat.sepMin:"";return b+=this.options.timeFormat.showSec?c+this.options.timeFormat.sepSec:""}};var m=new l;b.jPlayer.convertTime=function(a){return m.time(a)}; -b.jPlayer.uaBrowser=function(a){a=a.toLowerCase();var b=/(opera)(?:.*version)?[ \/]([\w.]+)/,d=/(msie) ([\w.]+)/,e=/(mozilla)(?:.*? rv:([\w.]+))?/;a=/(webkit)[ \/]([\w.]+)/.exec(a)||b.exec(a)||d.exec(a)||0>a.indexOf("compatible")&&e.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}};b.jPlayer.uaPlatform=function(a){var b=a.toLowerCase(),d=/(android)/,e=/(mobile)/;a=/(ipad|iphone|ipod|android|blackberry|playbook|windows ce|webos)/.exec(b)||[];b=/(ipad|playbook)/.exec(b)||!e.exec(b)&&d.exec(b)|| -[];a[1]&&(a[1]=a[1].replace(/\s/g,"_"));return{platform:a[1]||"",tablet:b[1]||""}};b.jPlayer.browser={};b.jPlayer.platform={};var j=b.jPlayer.uaBrowser(navigator.userAgent);j.browser&&(b.jPlayer.browser[j.browser]=!0,b.jPlayer.browser.version=j.version);j=b.jPlayer.uaPlatform(navigator.userAgent);j.platform&&(b.jPlayer.platform[j.platform]=!0,b.jPlayer.platform.mobile=!j.tablet,b.jPlayer.platform.tablet=!!j.tablet);b.jPlayer.getDocMode=function(){var a;b.jPlayer.browser.msie&&(document.documentMode? -a=document.documentMode:(a=5,document.compatMode&&"CSS1Compat"===document.compatMode&&(a=7)));return a};b.jPlayer.browser.documentMode=b.jPlayer.getDocMode();b.jPlayer.nativeFeatures={init:function(){var a=document,b=a.createElement("video"),d={w3c:"fullscreenEnabled fullscreenElement requestFullscreen exitFullscreen fullscreenchange fullscreenerror".split(" "),moz:"mozFullScreenEnabled mozFullScreenElement mozRequestFullScreen mozCancelFullScreen mozfullscreenchange mozfullscreenerror".split(" "), -webkit:" webkitCurrentFullScreenElement webkitRequestFullScreen webkitCancelFullScreen webkitfullscreenchange ".split(" "),webkitVideo:"webkitSupportsFullscreen webkitDisplayingFullscreen webkitEnterFullscreen webkitExitFullscreen ".split(" ")},e=["w3c","moz","webkit","webkitVideo"],g,h;this.fullscreen=b={support:{w3c:!!a[d.w3c[0]],moz:!!a[d.moz[0]],webkit:"function"===typeof a[d.webkit[3]],webkitVideo:"function"===typeof b[d.webkitVideo[2]]},used:{}};g=0;for(h=e.length;g','','','',''];c=document.createElement(''); -for(var e=0;e=a&&(b=!0);return b},_validString:function(a){return a&&"string"===typeof a},_limitValue:function(a,b,d){return ad?d:a},_urlNotSetError:function(a){this._error({type:b.jPlayer.error.URL_NOT_SET,context:a,message:b.jPlayer.errorMsg.URL_NOT_SET,hint:b.jPlayer.errorHint.URL_NOT_SET})},_flashError:function(a){var c;c=this.internal.ready?"FLASH_DISABLED":"FLASH";this._error({type:b.jPlayer.error[c],context:this.internal.flash.swf, -message:b.jPlayer.errorMsg[c]+a.message,hint:b.jPlayer.errorHint[c]});this.internal.flash.jq.css({width:"1px",height:"1px"})},_error:function(a){this._trigger(b.jPlayer.event.error,a);this.options.errorAlerts&&this._alert("Error!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+a.context)},_warning:function(a){this._trigger(b.jPlayer.event.warning,f,a);this.options.warningAlerts&&this._alert("Warning!"+(a.message?"\n\n"+a.message:"")+(a.hint?"\n\n"+a.hint:"")+"\n\nContext: "+ -a.context)},_alert:function(a){alert("jPlayer "+this.version.script+" : id='"+this.internal.self.id+"' : "+a)},_emulateHtmlBridge:function(){var a=this;b.each(b.jPlayer.emulateMethods.split(/\s+/g),function(b,d){a.internal.domNode[d]=function(b){a[d](b)}});b.each(b.jPlayer.event,function(c,d){var e=!0;b.each(b.jPlayer.reservedEvent.split(/\s+/g),function(a,b){if(b===c)return e=!1});e&&a.element.bind(d+".jPlayer.jPlayerHtml",function(){a._emulateHtmlUpdate();var b=document.createEvent("Event");b.initEvent(c, -!1,!0);a.internal.domNode.dispatchEvent(b)})})},_emulateHtmlUpdate:function(){var a=this;b.each(b.jPlayer.emulateStatus.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.status[d]});b.each(b.jPlayer.emulateOptions.split(/\s+/g),function(b,d){a.internal.domNode[d]=a.options[d]})},_destroyHtmlBridge:function(){var a=this;this.element.unbind(".jPlayerHtml");b.each((b.jPlayer.emulateMethods+" "+b.jPlayer.emulateStatus+" "+b.jPlayer.emulateOptions).split(/\s+/g),function(b,d){delete a.internal.domNode[d]})}}; -b.jPlayer.error={FLASH:"e_flash",FLASH_DISABLED:"e_flash_disabled",NO_SOLUTION:"e_no_solution",NO_SUPPORT:"e_no_support",URL:"e_url",URL_NOT_SET:"e_url_not_set",VERSION:"e_version"};b.jPlayer.errorMsg={FLASH:"jPlayer's Flash fallback is not configured correctly, or a command was issued before the jPlayer Ready event. Details: ",FLASH_DISABLED:"jPlayer's Flash fallback has been disabled by the browser due to the CSS rules you have used. Details: ",NO_SOLUTION:"No solution can be found by jPlayer in this browser. Neither HTML nor Flash can be used.", -NO_SUPPORT:"It is not possible to play any media format provided in setMedia() on this browser using your current options.",URL:"Media URL could not be loaded.",URL_NOT_SET:"Attempt to issue media playback commands, while no media url is set.",VERSION:"jPlayer "+b.jPlayer.prototype.version.script+" needs Jplayer.swf version "+b.jPlayer.prototype.version.needFlash+" but found "};b.jPlayer.errorHint={FLASH:"Check your swfPath option and that Jplayer.swf is there.",FLASH_DISABLED:"Check that you have not display:none; the jPlayer entity or any ancestor.", -NO_SOLUTION:"Review the jPlayer options: support and supplied.",NO_SUPPORT:"Video or audio formats defined in the supplied option are missing.",URL:"Check media URL is valid.",URL_NOT_SET:"Use setMedia() to set the media URL.",VERSION:"Update jPlayer files."};b.jPlayer.warning={CSS_SELECTOR_COUNT:"e_css_selector_count",CSS_SELECTOR_METHOD:"e_css_selector_method",CSS_SELECTOR_STRING:"e_css_selector_string",OPTION_KEY:"e_option_key"};b.jPlayer.warningMsg={CSS_SELECTOR_COUNT:"The number of css selectors found did not equal one: ", -CSS_SELECTOR_METHOD:"The methodName given in jPlayer('cssSelector') is not a valid jPlayer method.",CSS_SELECTOR_STRING:"The methodCssSelector given in jPlayer('cssSelector') is not a String or is empty.",OPTION_KEY:"The option requested in jPlayer('option') is undefined."};b.jPlayer.warningHint={CSS_SELECTOR_COUNT:"Check your css selector and the ancestor.",CSS_SELECTOR_METHOD:"Check your method name.",CSS_SELECTOR_STRING:"Check your css selector is a string.",OPTION_KEY:"Check your option name."}}); \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js deleted file mode 100644 index fb57ac60..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/popcorn/popcorn.jplayer.js +++ /dev/null @@ -1,558 +0,0 @@ -/* - * jPlayer Player Plugin for Popcorn JavaScript Library - * http://www.jplayer.org - * - * Copyright (c) 2013 Happyworm Ltd - * Licensed under the MIT license. - * http://opensource.org/licenses/MIT - * - * Author: Mark J Panaghiston - * Version: 1.1.1 - * Date: 5th June 2013 - * - * For Popcorn Version: 1.3 - * For jPlayer Version: 2.4.0 - * Requires: jQuery 1.3.2+ - * Note: jQuery dependancy cannot be removed since jPlayer 2 is a jQuery plugin. Use of jQuery will be kept to a minimum. - */ - -/* Code verified using http://www.jshint.com/ */ -/*jshint asi:false, bitwise:false, boss:false, browser:true, curly:false, debug:false, eqeqeq:true, eqnull:false, evil:false, forin:false, immed:false, jquery:true, laxbreak:false, newcap:true, noarg:true, noempty:true, nonew:true, onevar:false, passfail:false, plusplus:false, regexp:false, undef:true, sub:false, strict:false, white:false, smarttabs:true */ -/*global Popcorn:false, console:false */ - -(function(Popcorn) { - - var JQUERY_SCRIPT = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js', // Used if jQuery not already present. - JPLAYER_SCRIPT = 'http://www.jplayer.org/2.4.0/js/jquery.jplayer.min.js', // Used if jPlayer not already present. - JPLAYER_SWFPATH = 'http://www.jplayer.org/2.4.0/js/Jplayer.swf', // Used if not specified in jPlayer options via SRC Object. - SOLUTION = 'html,flash', // The default solution option. - DEBUG = false, // Decided to leave the debugging option and console output in for the time being. Overhead is trivial. - jQueryDownloading = false, // Flag to stop multiple instances from each pulling in jQuery, thus corrupting it. - jPlayerDownloading = false, // Flag to stop multiple instances from each pulling in jPlayer, thus corrupting it. - format = { // Duplicate of jPlayer 2.4.0 object, to avoid always requiring jQuery and jPlayer to be loaded before performing the _canPlayType() test. - mp3: { - codec: 'audio/mpeg; codecs="mp3"', - flashCanPlay: true, - media: 'audio' - }, - m4a: { // AAC / MP4 - codec: 'audio/mp4; codecs="mp4a.40.2"', - flashCanPlay: true, - media: 'audio' - }, - oga: { // OGG - codec: 'audio/ogg; codecs="vorbis"', - flashCanPlay: false, - media: 'audio' - }, - wav: { // PCM - codec: 'audio/wav; codecs="1"', - flashCanPlay: false, - media: 'audio' - }, - webma: { // WEBM - codec: 'audio/webm; codecs="vorbis"', - flashCanPlay: false, - media: 'audio' - }, - fla: { // FLV / F4A - codec: 'audio/x-flv', - flashCanPlay: true, - media: 'audio' - }, - rtmpa: { // RTMP AUDIO - codec: 'audio/rtmp; codecs="rtmp"', - flashCanPlay: true, - media: 'audio' - }, - m4v: { // H.264 / MP4 - codec: 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', - flashCanPlay: true, - media: 'video' - }, - ogv: { // OGG - codec: 'video/ogg; codecs="theora, vorbis"', - flashCanPlay: false, - media: 'video' - }, - webmv: { // WEBM - codec: 'video/webm; codecs="vorbis, vp8"', - flashCanPlay: false, - media: 'video' - }, - flv: { // FLV / F4V - codec: 'video/x-flv', - flashCanPlay: true, - media: 'video' - }, - rtmpv: { // RTMP VIDEO - codec: 'video/rtmp; codecs="rtmp"', - flashCanPlay: true, - media: 'video' - } - }, - isObject = function(val) { // Basic check for Object - if(val && typeof val === 'object' && val.hasOwnProperty) { - return true; - } else { - return false; - } - }, - getMediaType = function(url) { // Function to gleam the media type from the URL - var mediaType = false; - if(/\.mp3$/i.test(url)) { - mediaType = 'mp3'; - } else if(/\.mp4$/i.test(url) || /\.m4v$/i.test(url)) { - mediaType = 'm4v'; - } else if(/\.m4a$/i.test(url)) { - mediaType = 'm4a'; - } else if(/\.ogg$/i.test(url) || /\.oga$/i.test(url)) { - mediaType = 'oga'; - } else if(/\.ogv$/i.test(url)) { - mediaType = 'ogv'; - } else if(/\.webm$/i.test(url)) { - mediaType = 'webmv'; - } - return mediaType; - }, - getSupplied = function(url) { // Function to generate a supplied option from an src object. ie., When supplied not specified. - var supplied = '', - separator = ''; - if(isObject(url)) { - // Generate supplied option from object's properties. Non-format properties would be ignored by jPlayer. Order is unpredictable. - for(var prop in url) { - if(url.hasOwnProperty(prop)) { - supplied += separator + prop; - separator = ','; - } - } - } - if(DEBUG) console.log('getSupplied(): Generated: supplied = "' + supplied + '"'); - return supplied; - }; - - Popcorn.player( 'jplayer', { - _canPlayType: function( containerType, url ) { - // url : Either a String or an Object structured similar a jPlayer media object. ie., As used by setMedia in jPlayer. - // The url object may also contain a solution and supplied property. - - // Define the src object structure here! - - var cType = containerType.toLowerCase(), - srcObj = { - media:{}, - options:{} - }, - rVal = false, // Only a boolean false means it is not supported. - mediaType; - - if(cType !== 'video' && cType !== 'audio') { - - if(typeof url === 'string') { - // Check it starts with http, so the URL is absolute... Well, it is not a perfect check. - if(/^http.*/i.test(url)) { - mediaType = getMediaType(url); - if(mediaType) { - srcObj.media[mediaType] = url; - srcObj.options.solution = SOLUTION; - srcObj.options.supplied = mediaType; - } - } - } else { - srcObj = url; // Assume the url is an src object. - } - - // Check for Object and appropriate minimum data structure. - if(isObject(srcObj) && isObject(srcObj.media)) { - - if(!isObject(srcObj.options)) { - srcObj.options = {}; - } - - if(!srcObj.options.solution) { - srcObj.options.solution = SOLUTION; - } - - if(!srcObj.options.supplied) { - srcObj.options.supplied = getSupplied(srcObj.media); - } - - // Figure out how jPlayer will play it. - // This may not work properly when both audio and video is supplied. ie., A media player. But it should return truethy and jPlayer can figure it out. - - var solution = srcObj.options.solution.toLowerCase().split(","), // Create the solution array, with prority based on the order of the solution string. - supplied = srcObj.options.supplied.toLowerCase().split(","); // Create the supplied formats array, with prority based on the order of the supplied formats string. - - for(var sol = 0; sol < solution.length; sol++) { - - var solutionType = solution[sol].replace(/^\s+|\s+$/g, ""), //trim - checkingHtml = solutionType === 'html', - checkingFlash = solutionType === 'flash', - mediaElem; - - for(var fmt = 0; fmt < supplied.length; fmt++) { - mediaType = supplied[fmt].replace(/^\s+|\s+$/g, ""); //trim - if(format[mediaType]) { // Check format is valid. - - // Create an HTML5 media element for the type of media. - if(!mediaElem && checkingHtml) { - mediaElem = document.createElement(format[mediaType].media); - } - // See if the HTML5 media element can play the MIME / Codec type. - // Flash also returns the object if the format is playable, so it is truethy, but that html property is false. - // This assumes Flash is available, but that should be dealt with by jPlayer if that happens. - var htmlCanPlay = !!(mediaElem && mediaElem.canPlayType && mediaElem.canPlayType(format[mediaType].codec)), - htmlWillPlay = htmlCanPlay && checkingHtml, - flashWillPlay = format[mediaType].flashCanPlay && checkingFlash; - // The first one found will match what jPlayer uses. - if(htmlWillPlay || flashWillPlay) { - rVal = { - html: htmlWillPlay, - type: mediaType - }; - sol = solution.length; // Exit solution loop - fmt = supplied.length; // Exit supplied loop - } - } - } - } - } - } - return rVal; - }, - // _setup: function( options ) { // Warning: options is deprecated. - _setup: function() { - var media = this, - myPlayer, // The jQuery selector of the jPlayer element. Usually a
    - jPlayerObj, // The jPlayer data instance. For performance and DRY code. - mediaType = 'unknown', - jpMedia = {}, - jpOptions = {}, - ready = false, // Used during init to override the annoying duration dependance in the track event padding during Popcorn's isReady(). ie., We is ready after loadeddata and duration can then be set real value at leisure. - duration = 0, // For the durationchange event with both HTML5 and Flash solutions. Used with 'ready' to keep control during the Popcorn isReady() via loadeddata event. (Duration=0 is bad.) - durationchangeId = null, // A timeout ID used with delayed durationchange event. (Because of the duration=NaN fudge to avoid Popcorn track event corruption.) - canplaythrough = false, - error = null, // The MediaError object. - - dispatchDurationChange = function() { - if(ready) { - if(DEBUG) console.log('Dispatched event : durationchange : ' + duration); - media.dispatchEvent('durationchange'); - } else { - if(DEBUG) console.log('DELAYED EVENT (!ready) : durationchange : ' + duration); - clearTimeout(durationchangeId); // Stop multiple triggers causing multiple timeouts running in parallel. - durationchangeId = setTimeout(dispatchDurationChange, 250); - } - }, - - jPlayerFlashEventsPatch = function() { - - /* Events already supported by jPlayer Flash: - * loadstart - * loadedmetadata (M4A, M4V) - * progress - * play - * pause - * seeking - * seeked - * timeupdate - * ended - * volumechange - * error <- See the custom handler in jPlayerInit() - */ - - /* Events patched: - * loadeddata - * durationchange - * canplaythrough - * playing - */ - - /* Events NOT patched: - * suspend - * abort - * emptied - * stalled - * loadedmetadata (MP3) - * waiting - * canplay - * ratechange - */ - - // Triggering patched events through the jPlayer Object so the events are homogeneous. ie., The contain the event.jPlayer data structure. - - var checkDuration = function(event) { - if(event.jPlayer.status.duration !== duration) { - duration = event.jPlayer.status.duration; - dispatchDurationChange(); - } - }, - - checkCanPlayThrough = function(event) { - if(!canplaythrough && event.jPlayer.status.seekPercent === 100) { - canplaythrough = true; - setTimeout(function() { - if(DEBUG) console.log('Trigger : canplaythrough'); - jPlayerObj._trigger($.jPlayer.event.canplaythrough); - }, 0); - } - }; - - myPlayer.bind($.jPlayer.event.loadstart, function() { - setTimeout(function() { - if(DEBUG) console.log('Trigger : loadeddata'); - jPlayerObj._trigger($.jPlayer.event.loadeddata); - }, 0); - }) - .bind($.jPlayer.event.progress, function(event) { - checkDuration(event); - checkCanPlayThrough(event); - }) - .bind($.jPlayer.event.timeupdate, function(event) { - checkDuration(event); - checkCanPlayThrough(event); - }) - .bind($.jPlayer.event.play, function() { - setTimeout(function() { - if(DEBUG) console.log('Trigger : playing'); - jPlayerObj._trigger($.jPlayer.event.playing); - }, 0); - }); - - if(DEBUG) console.log('Created CUSTOM event handlers for FLASH'); - }, - - jPlayerInit = function() { - (function($) { - - myPlayer = $('#' + media.id); - - if(typeof media.src === 'string') { - mediaType = getMediaType(media.src); - jpMedia[mediaType] = media.src; - jpOptions.supplied = mediaType; - jpOptions.solution = SOLUTION; - } else if(isObject(media.src)) { - jpMedia = isObject(media.src.media) ? media.src.media : {}; - jpOptions = isObject(media.src.options) ? media.src.options : {}; - jpOptions.solution = jpOptions.solution || SOLUTION; - jpOptions.supplied = jpOptions.supplied || getSupplied(media.src.media); - } - - // Allow the swfPath to be set to local server. ie., If the jPlayer Plugin is local and already on the page, then you can also use the local SWF. - jpOptions.swfPath = jpOptions.swfPath || JPLAYER_SWFPATH; - - myPlayer.bind($.jPlayer.event.ready, function(event) { - if(event.jPlayer.flash.used) { - jPlayerFlashEventsPatch(); - } - // Set the media andd load it, so that the Flash solution behaves similar to HTML5 solution. - // This also allows the loadstart event to be used to know jPlayer is ready. - $(this).jPlayer('setMedia', jpMedia).jPlayer('load'); - }); - - // Do not auto-bubble the reserved events, nor the loadeddata and durationchange event, since the duration must be carefully handled when loadeddata event occurs. - // See the duration property code for more details. (Ranting.) - - var reservedEvents = $.jPlayer.reservedEvent + ' loadeddata durationchange', - reservedEvent = reservedEvents.split(/\s+/g); - - // Generate event handlers for all the standard HTML5 media events. (Except durationchange) - - var bindEvent = function(name) { - myPlayer.bind($.jPlayer.event[name], function(event) { - if(DEBUG) console.log('Dispatched event: ' + name + (event && event.jPlayer ? ' (' + event.jPlayer.status.currentTime + 's)' : '')); // Must be after dispatch for some reason on Firefox/Opera - media.dispatchEvent(name); - }); - if(DEBUG) console.log('Created event handler for: ' + name); - }; - - for(var eventName in $.jPlayer.event) { - if($.jPlayer.event.hasOwnProperty(eventName)) { - var nativeEvent = true; - for(var iRes in reservedEvent) { - if(reservedEvent.hasOwnProperty(iRes)) { - if(reservedEvent[iRes] === eventName) { - nativeEvent = false; - break; - } - } - } - if(nativeEvent) { - bindEvent(eventName); - } else { - if(DEBUG) console.log('Skipped auto event handler creation for: ' + eventName); - } - } - } - - myPlayer.bind($.jPlayer.event.loadeddata, function(event) { - if(DEBUG) console.log('Dispatched event: loadeddata' + (event && event.jPlayer ? ' (' + event.jPlayer.status.currentTime + 's)' : '')); - media.dispatchEvent('loadeddata'); - ready = true; - }); - if(DEBUG) console.log('Created CUSTOM event handler for: loadeddata'); - - myPlayer.bind($.jPlayer.event.durationchange, function(event) { - duration = event.jPlayer.status.duration; - dispatchDurationChange(); - }); - if(DEBUG) console.log('Created CUSTOM event handler for: durationchange'); - - // The error event is a special case. Plus jPlayer error event assumes it is a broken URL. (It could also be a decoder error... Or aborted or a Network error.) - myPlayer.bind($.jPlayer.event.error, function(event) { - // Not sure how to handle the error situation. Popcorn does not appear to have the error or error.code property documented here: http://popcornjs.org/popcorn-docs/media-methods/ - // If any error event happens, then something has gone pear shaped. - - error = event.jPlayer.error; // Saving object pointer, not a copy of the object. Possible garbage collection issue... But the player is dead anyway, so don't care. - - if(error.type === $.jPlayer.error.URL) { - error.code = 4; // MEDIA_ERR_SRC_NOT_SUPPORTED since jPlayer makes this assumption. It is the most common error, then the decode error. Never seen either of the other 2 error types occur. - } else { - error.code = 0; // It was a jPlayer error, not an HTML5 media error. - } - - if(DEBUG) console.log('Dispatched event: error'); - if(DEBUG) console.dir(error); - media.dispatchEvent('error'); - }); - if(DEBUG) console.log('Created CUSTOM event handler for: error'); - - Popcorn.player.defineProperty( media, 'error', { - set: function() { - // Read-only property - return error; - }, - get: function() { - return error; - } - }); - - Popcorn.player.defineProperty( media, 'currentTime', { - set: function( val ) { - if(jPlayerObj.status.paused) { - myPlayer.jPlayer('pause', val); - } else { - myPlayer.jPlayer('play', val); - } - return val; - }, - get: function() { - return jPlayerObj.status.currentTime; - } - }); - - /* The joy of duration and the loadeddata event isReady() handler - * The duration is assumed to be a NaN or a valid duration. - * jPlayer uses zero instead of a NaN and this screws up the Popcorn track event start/end arrays padding. - * This line here: - * videoDurationPlus = duration != duration ? Number.MAX_VALUE : duration + 1; - * Not sure why it is not simply: - * videoDurationPlus = Number.MAX_VALUE; // Who cares if the padding is close to the real duration? - * So if you trigger loadeddata before the duration is correct, the track event padding is screwed up. (It pads the start, not the end... Well, duration+1 = 0+1 = 1s) - * That line makes the MP3 Flash fallback difficult to setup. The whole MP3 will need to load before the duration is known. - * Planning on using a NaN for duration until a >0 value is found... Except with MP3, where seekPercent must be 100% before setting the duration. - * Why not just use a NaN during init... And then correct the duration later? - */ - - Popcorn.player.defineProperty( media, 'duration', { - set: function() { - // Read-only property - if(ready) { - return duration; - } else { - return NaN; - } - }, - get: function() { - if(ready) { - return duration; // Popcorn has initialized, we can now use duration zero or whatever without fear. - } else { - return NaN; // Keep the duration a NaN until after loadeddata event has occurred. Otherwise Popcorn track event padding is corrupted. - } - } - }); - - Popcorn.player.defineProperty( media, 'muted', { - set: function( val ) { - myPlayer.jPlayer('mute', val); - return jPlayerObj.options.muted; - }, - get: function() { - return jPlayerObj.options.muted; - } - }); - - Popcorn.player.defineProperty( media, 'volume', { - set: function( val ) { - myPlayer.jPlayer('volume', val); - return jPlayerObj.options.volume; - }, - get: function() { - return jPlayerObj.options.volume; - } - }); - - Popcorn.player.defineProperty( media, 'paused', { - set: function() { - // Read-only property - return jPlayerObj.status.paused; - }, - get: function() { - return jPlayerObj.status.paused; - } - }); - - media.play = function() { - myPlayer.jPlayer('play'); - }; - media.pause = function() { - myPlayer.jPlayer('pause'); - }; - - myPlayer.jPlayer(jpOptions); // Instance jPlayer. Note that the options should not have a ready event defined... Kill it by default? - jPlayerObj = myPlayer.data('jPlayer'); - - }(jQuery)); - }, - - jPlayerCheck = function() { - if (!jQuery.jPlayer) { - if (!jPlayerDownloading) { - jPlayerDownloading = true; - Popcorn.getScript(JPLAYER_SCRIPT, function() { - jPlayerDownloading = false; - jPlayerInit(); - }); - } else { - setTimeout(jPlayerCheck, 250); - } - } else { - jPlayerInit(); - } - }, - - jQueryCheck = function() { - if (!window.jQuery) { - if (!jQueryDownloading) { - jQueryDownloading = true; - Popcorn.getScript(JQUERY_SCRIPT, function() { - jQueryDownloading = false; - jPlayerCheck(); - }); - } else { - setTimeout(jQueryCheck, 250); - } - } else { - jPlayerCheck(); - } - }; - - jQueryCheck(); - }, - _teardown: function() { - jQuery('#' + this.id).jPlayer('destroy'); - } - }); - -}(Popcorn)); \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css deleted file mode 100644 index f71520d6..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.css +++ /dev/null @@ -1,640 +0,0 @@ -/* - * Skin for jPlayer Plugin (jQuery JavaScript Library) - * http://www.jplayer.org - * - * Skin Name: Blue Monday - * - * Copyright (c) 2010-2012 Happyworm Ltd - * Dual licensed under the MIT and GPL licenses. - * - http://www.opensource.org/licenses/mit-license.php - * - http://www.gnu.org/copyleft/gpl.html - * - * Author: Silvia Benvenuti - * Skin Version: 4.3 (jPlayer 2.2.0) - * Date: 19th November 2012 - */ - -div.jp-audio, -div.jp-audio-stream, -div.jp-video { - - /* Edit the font-size to counteract inherited font sizing. - * Eg. 1.25em = 1 / 0.8em - */ - - font-size:1.25em; /* 1.25em for testing in site pages */ /* No parent CSS that can effect the size in the demos ZIP */ - - font-family:Verdana, Arial, sans-serif; - line-height:1.6; - color: #666; - border:1px solid #cccccc; - background-color:#eee; -} -div.jp-audio { - width:420px; -} -div.jp-audio-stream { - width:182px; -} -div.jp-video-270p { - width:480px; -} -div.jp-video-360p { - width:640px; -} -div.jp-video-full { - /* Rules for IE6 (full-screen) */ - width:480px; - height:270px; - /* Rules for IE7 (full-screen) - Otherwise the relative container causes other page items that are not position:static (default) to appear over the video/gui. */ - position:static !important; position:relative; -} - -/* The z-index rule is defined in this manner to enable Popcorn plugins that add overlays to video area. EG. Subtitles. */ -div.jp-video-full div div { - z-index:1000; -} - -div.jp-video-full div.jp-jplayer { - top: 0; - left: 0; - position: fixed !important; position: relative; /* Rules for IE6 (full-screen) */ - overflow: hidden; -} - -div.jp-video-full div.jp-gui { - position: fixed !important; position: static; /* Rules for IE6 (full-screen) */ - top: 0; - left: 0; - width:100%; - height:100%; - z-index:1001; /* 1 layer above the others. */ -} - -div.jp-video-full div.jp-interface { - position: absolute !important; position: relative; /* Rules for IE6 (full-screen) */ - bottom: 0; - left: 0; -} - -div.jp-interface { - position: relative; - background-color:#eee; - width:100%; -} - -div.jp-audio div.jp-type-single div.jp-interface { - height:80px; -} -div.jp-audio div.jp-type-playlist div.jp-interface { - height:80px; -} - -div.jp-audio-stream div.jp-type-single div.jp-interface { - height:80px; -} - -div.jp-video div.jp-interface { - border-top:1px solid #aaaaaa; -} - -/* @group CONTROLS */ - -div.jp-controls-holder { - clear: both; - width:440px; - margin:0 auto; - position: relative; - overflow:hidden; - top:-8px; /* This negative value depends on the size of the text in jp-currentTime and jp-duration */ -} - -div.jp-interface ul.jp-controls { - list-style-type:none; - margin:0; - padding: 0; - overflow:hidden; -} - -div.jp-audio ul.jp-controls { - width: 380px; - padding:20px 20px 0 20px; -} - -div.jp-audio-stream ul.jp-controls { - width: 142px; - padding:20px 20px 0 20px; -} - -div.jp-video div.jp-type-single ul.jp-controls { - width: 78px; - margin-left: 200px; -} - -div.jp-video div.jp-type-playlist ul.jp-controls { - width: 134px; - margin-left: 172px; -} -div.jp-video ul.jp-controls, -div.jp-interface ul.jp-controls li { - display:inline; - float: left; -} - -div.jp-interface ul.jp-controls a { - display:block; - overflow:hidden; - text-indent:-9999px; -} -a.jp-play, -a.jp-pause { - width:40px; - height:40px; -} - -a.jp-play { - background: url("jplayer.blue.monday.jpg") 0 0 no-repeat; -} -a.jp-play:hover { - background: url("jplayer.blue.monday.jpg") -41px 0 no-repeat; -} -a.jp-pause { - background: url("jplayer.blue.monday.jpg") 0 -42px no-repeat; - display: none; -} -a.jp-pause:hover { - background: url("jplayer.blue.monday.jpg") -41px -42px no-repeat; -} - -a.jp-stop, a.jp-previous, a.jp-next { - width:28px; - height:28px; - margin-top:6px; -} - -a.jp-stop { - background: url("jplayer.blue.monday.jpg") 0 -83px no-repeat; - margin-left:10px; -} - -a.jp-stop:hover { - background: url("jplayer.blue.monday.jpg") -29px -83px no-repeat; -} - -a.jp-previous { - background: url("jplayer.blue.monday.jpg") 0 -112px no-repeat; -} -a.jp-previous:hover { - background: url("jplayer.blue.monday.jpg") -29px -112px no-repeat; -} - -a.jp-next { - background: url("jplayer.blue.monday.jpg") 0 -141px no-repeat; -} -a.jp-next:hover { - background: url("jplayer.blue.monday.jpg") -29px -141px no-repeat; -} - -/* @end */ - -/* @group progress bar */ - -div.jp-progress { - overflow:hidden; - background-color: #ddd; -} -div.jp-audio div.jp-progress { - position: absolute; - top:32px; - height:15px; -} -div.jp-audio div.jp-type-single div.jp-progress { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-progress { - left:166px; - width:130px; -} -div.jp-video div.jp-progress { - top:0px; - left:0px; - width:100%; - height:10px; -} -div.jp-seek-bar { - background: url("jplayer.blue.monday.jpg") 0 -202px repeat-x; - width:0px; - height:100%; - cursor: pointer; -} -div.jp-play-bar { - background: url("jplayer.blue.monday.jpg") 0 -218px repeat-x ; - width:0px; - height:100%; -} - -/* The seeking class is added/removed inside jPlayer */ -div.jp-seeking-bg { - background: url("jplayer.blue.monday.seeking.gif"); -} - -/* @end */ - -/* @group volume controls */ - - -a.jp-mute, -a.jp-unmute, -a.jp-volume-max { - width:18px; - height:15px; - margin-top:12px; -} - -div.jp-audio div.jp-type-single a.jp-mute, -div.jp-audio div.jp-type-single a.jp-unmute { - margin-left: 210px; -} -div.jp-audio div.jp-type-playlist a.jp-mute, -div.jp-audio div.jp-type-playlist a.jp-unmute { - margin-left: 154px; -} - -div.jp-audio-stream div.jp-type-single a.jp-mute, -div.jp-audio-stream div.jp-type-single a.jp-unmute { - margin-left:10px; -} - -div.jp-audio a.jp-volume-max, -div.jp-audio-stream a.jp-volume-max { - margin-left: 56px; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute, -div.jp-video a.jp-volume-max { - position: absolute; - top:12px; - margin-top:0; -} - -div.jp-video a.jp-mute, -div.jp-video a.jp-unmute { - left: 50px; -} - -div.jp-video a.jp-volume-max { - left: 134px; -} - -a.jp-mute { - background: url("jplayer.blue.monday.jpg") 0 -170px no-repeat; -} -a.jp-mute:hover { - background: url("jplayer.blue.monday.jpg") -19px -170px no-repeat; -} -a.jp-unmute { - background: url("jplayer.blue.monday.jpg") -60px -170px no-repeat; - display: none; -} -a.jp-unmute:hover { - background: url("jplayer.blue.monday.jpg") -79px -170px no-repeat; -} -a.jp-volume-max { - background: url("jplayer.blue.monday.jpg") 0 -186px no-repeat; -} -a.jp-volume-max:hover { - background: url("jplayer.blue.monday.jpg") -19px -186px no-repeat; -} - -div.jp-volume-bar { - position: absolute; - overflow:hidden; - background: url("jplayer.blue.monday.jpg") 0 -250px repeat-x; - width:46px; - height:5px; - cursor: pointer; -} -div.jp-audio div.jp-volume-bar { - top:37px; - left:330px; -} -div.jp-audio-stream div.jp-volume-bar { - top:37px; - left:92px; -} -div.jp-video div.jp-volume-bar { - top:17px; - left:72px; -} -div.jp-volume-bar-value { - background: url("jplayer.blue.monday.jpg") 0 -256px repeat-x; - width:0px; - height:5px; -} - -/* @end */ - -/* @group current time and duration */ - -div.jp-audio div.jp-time-holder { - position:absolute; - top:50px; -} -div.jp-audio div.jp-type-single div.jp-time-holder { - left:110px; - width:186px; -} -div.jp-audio div.jp-type-playlist div.jp-time-holder { - left:166px; - width:130px; -} - -div.jp-current-time, -div.jp-duration { - width:60px; - font-size:.64em; - font-style:oblique; -} -div.jp-current-time { - float: left; - display:inline; -} -div.jp-duration { - float: right; - display:inline; - text-align: right; -} - -div.jp-video div.jp-current-time { - margin-left:20px; -} -div.jp-video div.jp-duration { - margin-right:20px; -} - -/* @end */ - -/* @group playlist */ - -div.jp-title { - font-weight:bold; - text-align:center; -} - -div.jp-title, -div.jp-playlist { - width:100%; - background-color:#ccc; - border-top:1px solid #cccccc; -} -div.jp-type-single div.jp-title, -div.jp-type-playlist div.jp-title, -div.jp-type-single div.jp-playlist { - border-top:none; -} -div.jp-title ul, -div.jp-playlist ul { - list-style-type:none; - margin:0; - padding:0 20px; - font-size:.72em; -} - -div.jp-title li { - padding:5px 0; - font-weight:bold; -} -div.jp-playlist li { - padding:5px 0 4px 20px; - border-bottom:1px solid #eee; -} - -div.jp-playlist li div { - display:inline; -} - -/* Note that the first-child (IE6) and last-child (IE6/7/8) selectors do not work on IE */ - -div.jp-type-playlist div.jp-playlist li:last-child { - padding:5px 0 5px 20px; - border-bottom:none; -} -div.jp-type-playlist div.jp-playlist li.jp-playlist-current { - list-style-type:square; - list-style-position:inside; - padding-left:7px; -} -div.jp-type-playlist div.jp-playlist a { - color: #333; - text-decoration: none; -} -div.jp-type-playlist div.jp-playlist a:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-current { - color:#0d88c1; -} - -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove { - float:right; - display:inline; - text-align:right; - margin-right:10px; - font-weight:bold; - color:#666; -} -div.jp-type-playlist div.jp-playlist a.jp-playlist-item-remove:hover { - color:#0d88c1; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media { - float:right; - display:inline; - text-align:right; - margin-right:10px; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a{ - color:#666; -} -div.jp-type-playlist div.jp-playlist span.jp-free-media a:hover{ - color:#0d88c1; -} -span.jp-artist { - font-size:.8em; - color:#666; -} - -/* @end */ - -div.jp-video-play { - width:100%; - overflow:hidden; /* Important for nested negative margins to work in modern browsers */ - cursor:pointer; - background-color:rgba(0,0,0,0); /* Makes IE9 work with the active area over the whole video area. IE6/7/8 only have the button as active area. */ -} -div.jp-video-270p div.jp-video-play { - margin-top:-270px; - height:270px; -} -div.jp-video-360p div.jp-video-play { - margin-top:-360px; - height:360px; -} -div.jp-video-full div.jp-video-play { - height:100%; -} -a.jp-video-play-icon { - position:relative; - display:block; - width: 112px; - height: 100px; - - margin-left:-56px; - margin-top:-50px; - left:50%; - top:50%; - - background: url("jplayer.blue.monday.video.play.png") 0 0 no-repeat; - text-indent:-9999px; -} -div.jp-video-play:hover a.jp-video-play-icon { - background: url("jplayer.blue.monday.video.play.png") 0 -100px no-repeat; -} - - - - - -div.jp-jplayer audio, -div.jp-jplayer { - width:0px; - height:0px; -} - -div.jp-jplayer { - background-color: #000000; -} - - - - - -/* @group TOGGLES */ - -/* The audio toggles are nested inside jp-time-holder */ - -ul.jp-toggles { - list-style-type:none; - padding:0; - margin:0 auto; - overflow:hidden; -} - -div.jp-audio .jp-type-single ul.jp-toggles { - width:25px; -} -div.jp-audio .jp-type-playlist ul.jp-toggles { - width:55px; - margin: 0; - position: absolute; - left: 325px; - top: 50px; -} - -div.jp-video ul.jp-toggles { - margin-top:10px; - width:100px; -} - -ul.jp-toggles li { - display:block; - float:right; -} - -ul.jp-toggles li a { - display:block; - width:25px; - height:18px; - text-indent:-9999px; - line-height:100%; /* need this for IE6 */ -} - -a.jp-full-screen { - background: url("jplayer.blue.monday.jpg") 0 -310px no-repeat; - margin-left: 20px; -} - -a.jp-full-screen:hover { - background: url("jplayer.blue.monday.jpg") -30px -310px no-repeat; -} - -a.jp-restore-screen { - background: url("jplayer.blue.monday.jpg") -60px -310px no-repeat; - margin-left: 20px; -} - -a.jp-restore-screen:hover { - background: url("jplayer.blue.monday.jpg") -90px -310px no-repeat; -} - -a.jp-repeat { - background: url("jplayer.blue.monday.jpg") 0 -290px no-repeat; -} - -a.jp-repeat:hover { - background: url("jplayer.blue.monday.jpg") -30px -290px no-repeat; -} - -a.jp-repeat-off { - background: url("jplayer.blue.monday.jpg") -60px -290px no-repeat; -} - -a.jp-repeat-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -290px no-repeat; -} - -a.jp-shuffle { - background: url("jplayer.blue.monday.jpg") 0 -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle:hover { - background: url("jplayer.blue.monday.jpg") -30px -270px no-repeat; -} - -a.jp-shuffle-off { - background: url("jplayer.blue.monday.jpg") -60px -270px no-repeat; - margin-left: 5px; -} - -a.jp-shuffle-off:hover { - background: url("jplayer.blue.monday.jpg") -90px -270px no-repeat; -} - - -/* @end */ - -/* @group NO SOLUTION error feedback */ - -.jp-no-solution { - padding:5px; - font-size:.8em; - background-color:#eee; - border:2px solid #cccccc; - color:#000; - display:none; -} - -.jp-no-solution a { - color:#000; -} - -.jp-no-solution span { - font-size:1em; - display:block; - text-align:center; - font-weight:bold; -} - -/* @end */ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg deleted file mode 100644 index 52fdc1aa..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.jpg and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif deleted file mode 100644 index dbd2105a..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.seeking.gif and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png deleted file mode 100644 index 8e97df01..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/jplayer.blue.monday.video.play.png and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm deleted file mode 100644 index e3adcabf..00000000 Binary files a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/jPlayer/skin/blue.monday/spirites_blue.monday_2011.pxm and /dev/null differ diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js deleted file mode 100644 index 3503860e..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootbox.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * bootbox.js v3.3.0 - * - * http://bootboxjs.com/license.txt - */ -var bootbox=window.bootbox||function(a,b){function c(a,b){return"undefined"==typeof b&&(b=d),"string"==typeof m[b][a]?m[b][a]:b!=e?c(a,e):a}var d="en",e="en",f=!0,g="static",h="javascript:;",i="",j={},k={},l={};l.setLocale=function(a){for(var b in m)if(b==a)return d=a,void 0;throw new Error("Invalid locale: "+a)},l.addLocale=function(a,b){"undefined"==typeof m[a]&&(m[a]={});for(var c in b)m[a][c]=b[c]},l.setIcons=function(a){k=a,("object"!=typeof k||null===k)&&(k={})},l.setBtnClasses=function(a){j=a,("object"!=typeof j||null===j)&&(j={})},l.alert=function(){var a="",b=c("OK"),d=null;switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?d=arguments[1]:b=arguments[1];break;case 3:a=arguments[0],b=arguments[1],d=arguments[2];break;default:throw new Error("Incorrect number of arguments: expected 1-3")}return l.dialog(a,{label:b,icon:k.OK,"class":j.OK,callback:d},{onEscape:d||!0})},l.confirm=function(){var a="",b=c("CANCEL"),d=c("CONFIRM"),e=null;switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?e=arguments[1]:b=arguments[1];break;case 3:a=arguments[0],b=arguments[1],"function"==typeof arguments[2]?e=arguments[2]:d=arguments[2];break;case 4:a=arguments[0],b=arguments[1],d=arguments[2],e=arguments[3];break;default:throw new Error("Incorrect number of arguments: expected 1-4")}var f=function(){return"function"==typeof e?e(!1):void 0},g=function(){return"function"==typeof e?e(!0):void 0};return l.dialog(a,[{label:b,icon:k.CANCEL,"class":j.CANCEL,callback:f},{label:d,icon:k.CONFIRM,"class":j.CONFIRM,callback:g}],{onEscape:f})},l.prompt=function(){var a="",d=c("CANCEL"),e=c("CONFIRM"),f=null,g="";switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"function"==typeof arguments[1]?f=arguments[1]:d=arguments[1];break;case 3:a=arguments[0],d=arguments[1],"function"==typeof arguments[2]?f=arguments[2]:e=arguments[2];break;case 4:a=arguments[0],d=arguments[1],e=arguments[2],f=arguments[3];break;case 5:a=arguments[0],d=arguments[1],e=arguments[2],f=arguments[3],g=arguments[4];break;default:throw new Error("Incorrect number of arguments: expected 1-5")}var h=a,i=b("
    ");i.append("");var m=function(){return"function"==typeof f?f(null):void 0},n=function(){return"function"==typeof f?f(i.find("input[type=text]").val()):void 0},o=l.dialog(i,[{label:d,icon:k.CANCEL,"class":j.CANCEL,callback:m},{label:e,icon:k.CONFIRM,"class":j.CONFIRM,callback:n}],{header:h,show:!1,onEscape:m});return o.on("shown",function(){i.find("input[type=text]").focus(),i.on("submit",function(a){a.preventDefault(),o.find(".btn-inverse").click()})}),o.modal("show"),o},l.dialog=function(c,d,e){function j(){var a=null;"function"==typeof e.onEscape&&(a=e.onEscape()),a!==!1&&x.modal("hide")}var k="",l=[];e||(e={}),"undefined"==typeof d?d=[]:"undefined"==typeof d.length&&(d=[d]);for(var m=d.length;m--;){var n=null,o=null,p=null,q="",r=null;if("undefined"==typeof d[m].label&&"undefined"==typeof d[m]["class"]&&"undefined"==typeof d[m].callback){var s=0,t=null;for(var u in d[m])if(t=u,++s>1)break;1==s&&"function"==typeof d[m][u]&&(d[m].label=t,d[m].callback=d[m][u])}"function"==typeof d[m].callback&&(r=d[m].callback),d[m]["class"]?p=d[m]["class"]:m==d.length-1&&d.length<=2&&(p="btn-inverse"),d[m].link!==!0&&(p="btn "+p),n=d[m].label?d[m].label:"Option "+(m+1),d[m].icon&&(q=" "),o=d[m].href?d[m].href:h,k=""+q+n+""+k,l[m]=r}var v=["");var x=b(v.join("\n")),y="undefined"==typeof e.animate?f:e.animate;y&&x.addClass("fade");var z="undefined"==typeof e.classes?i:e.classes;return z&&x.addClass(z),x.find(".modal-body").html(c),x.on("keyup.dismiss.modal",function(a){27===a.which&&e.onEscape&&j("escape")}),x.on("click","a.close",function(a){a.preventDefault(),j("close")}),x.on("shown",function(){x.find("a.btn-inverse:first").focus()}),x.on("hidden",function(a){a.target===this&&x.remove()}),x.on("click",".modal-footer a",function(a){var c=b(this).data("handler"),e=l[c],f=null;("undefined"==typeof c||"undefined"==typeof d[c].href)&&(a.preventDefault(),"function"==typeof e&&(f=e(a)),f!==!1&&x.modal("hide"))}),b("body").append(x),x.modal({backdrop:"undefined"==typeof e.backdrop?g:e.backdrop,keyboard:!1,show:!1}),x.on("show",function(){b(a).off("focusin.modal")}),("undefined"==typeof e.show||e.show===!0)&&x.modal("show"),x},l.modal=function(){var a,c,d,e={onEscape:null,keyboard:!0,backdrop:g};switch(arguments.length){case 1:a=arguments[0];break;case 2:a=arguments[0],"object"==typeof arguments[1]?d=arguments[1]:c=arguments[1];break;case 3:a=arguments[0],c=arguments[1],d=arguments[2];break;default:throw new Error("Incorrect number of arguments: expected 1-3")}return e.header=c,d="object"==typeof d?b.extend(e,d):e,l.dialog(a,[],d)},l.hideAll=function(){b(".bootbox").modal("hide")},l.animate=function(a){f=a},l.backdrop=function(a){g=a},l.classes=function(a){i=a};var m={br:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Sim"},da:{OK:"OK",CANCEL:"Annuller",CONFIRM:"Accepter"},de:{OK:"OK",CANCEL:"Abbrechen",CONFIRM:"Akzeptieren"},en:{OK:"OK",CANCEL:"Cancel",CONFIRM:"OK"},es:{OK:"OK",CANCEL:"Cancelar",CONFIRM:"Aceptar"},fr:{OK:"OK",CANCEL:"Annuler",CONFIRM:"D'accord"},it:{OK:"OK",CANCEL:"Annulla",CONFIRM:"Conferma"},nl:{OK:"OK",CANCEL:"Annuleren",CONFIRM:"Accepteren"},pl:{OK:"OK",CANCEL:"Anuluj",CONFIRM:"Potwierdź"},ru:{OK:"OK",CANCEL:"Отмена",CONFIRM:"Применить"},zh_CN:{OK:"OK",CANCEL:"取消",CONFIRM:"确认"},zh_TW:{OK:"OK",CANCEL:"取消",CONFIRM:"確認"}};return l}(document,window.jQuery);window.bootbox=bootbox; \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js deleted file mode 100644 index 3b299fa4..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-lightbox.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var t=function(t,n){this.options=n;this.$element=e(t).delegate('[data-dismiss="lightbox"]',"click.dismiss.lightbox",e.proxy(this.hide,this));this.options.remote&&this.$element.find(".lightbox-body").load(this.options.remote)};t.prototype=e.extend({},e.fn.modal.Constructor.prototype);t.prototype.constructor=t;t.prototype.enforceFocus=function(){var t=this;e(document).on("focusin.lightbox",function(e){if(t.$element[0]!==e.target&&!t.$element.has(e.target).length){t.$element.focus()}})};t.prototype.show=function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=true;this.escape();this.preloadSize(function(){t.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");if(!t.$element.parent().length){t.$element.appendTo(document.body)}hide_animation();t.$element.show();if(n){t.$element[0].offsetWidth}t.$element.addClass("in").attr("aria-hidden",false);t.enforceFocus();n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})})};t.prototype.hide=function(t){t&&t.preventDefault();var n=this;t=e.Event("hide");this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=false;this.escape();e(document).off("focusin.lightbox");this.$element.removeClass("in").attr("aria-hidden",true);e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()};t.prototype.escape=function(){var e=this;if(this.isShown&&this.options.keyboard){this.$element.on("keyup.dismiss.lightbox",function(t){t.which==27&&e.hide()})}else if(!this.isShown){this.$element.off("keyup.dismiss.lightbox")}};t.prototype.preloadSize=function(t){var n=e.Callbacks();if(t)n.add(t);var r=this;var i,s,o,u,a,f,l,c,h,p;i=e(window).height();s=e(window).width();o=parseInt(r.$element.find(".lightbox-content").css("padding-top"),10);u=parseInt(r.$element.find(".lightbox-content").css("padding-bottom"),10);a=parseInt(r.$element.find(".lightbox-content").css("padding-left"),10);f=parseInt(r.$element.find(".lightbox-content").css("padding-right"),10);l=r.$element.find(".lightbox-content").find("img:first");c=new Image;c.onload=function(){if(c.width+a+f>=s){h=c.width;p=c.height;c.width=s-a-f;c.height=p/h*c.width}if(c.height+o+u>=i){h=c.width;p=c.height;c.height=i-o-u;c.width=h/p*c.height}r.$element.css({position:"fixed",width:c.width+a+f,height:c.height+o+u,top:i/2-(c.height+o+u)/2,left:"50%","margin-left":-1*(c.width+a+f)/2});r.$element.find(".lightbox-content").css({width:c.width,height:c.height});n.fire()};c.src=l.attr("src")};var n=e.fn.lightbox;e.fn.lightbox=function(n){return this.each(function(){var r=e(this);var i=r.data("lightbox");var s=e.extend({},e.fn.lightbox.defaults,r.data(),typeof n=="object"&&n);if(!i)r.data("lightbox",i=new t(this,s));if(typeof n=="string")i[n]();else if(s.show)i.show()})};e.fn.lightbox.defaults={backdrop:true,keyboard:true,show:true};e.fn.lightbox.Constructor=t;e.fn.lightbox.noConflict=function(){e.fn.lightbox=n;return this};e(document).on("click.lightbox.data-api",'[data-toggle="lightbox"]',function(t){var n=e(this);var r=n.attr("href");var i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,""));var s=i.data("lightbox")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault();i.lightbox(s).one("hide",function(){n.focus()})})}(window.jQuery) \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js deleted file mode 100644 index 78ec172c..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modal.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";var t=function(e,t){this.init(e,t)};t.prototype={constructor:t,init:function(t,n){this.options=n;this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this));this.options.remote&&this.$element.find(".modal-body").load(this.options.remote);var r=typeof this.options.manager==="function"?this.options.manager.call(this):this.options.manager;r=r.appendModal?r:e(r).modalmanager().data("modalmanager");r.appendModal(this)},toggle:function(){return this[!this.isShown?"show":"hide"]()},show:function(){var t=e.Event("show");if(this.isShown)return;this.$element.trigger(t);if(t.isDefaultPrevented())return;this.escape();this.tab();this.options.loading&&this.loading()},hide:function(t){t&&t.preventDefault();t=e.Event("hide");this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return this.isShown=false;this.isShown=false;this.escape();this.tab();this.isLoading&&this.loading();e(document).off("focusin.modal");this.$element.removeClass("in").removeClass("animated").removeClass(this.options.attentionAnimation).removeClass("modal-overflow").attr("aria-hidden",true);e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},layout:function(){var t=this.options.height?"height":"max-height",n=this.options.height||this.options.maxHeight;if(this.options.width){this.$element.css("width",this.options.width);var r=this;this.$element.css("margin-left",function(){if(/%/ig.test(r.options.width)){return-(parseInt(r.options.width)/2)+"%"}else{return-(e(this).width()/2)+"px"}})}else{this.$element.css("width","");this.$element.css("margin-left","")}this.$element.find(".modal-body").css("overflow","").css(t,"");if(n){this.$element.find(".modal-body").css("overflow","auto").css(t,n)}var i=e(window).height()-10e(this).data("tabindex")?r=e(this):i=e(this)}});r[0]!==e(this)[0]?r.focus():i.focus();n.preventDefault()}})}else if(!this.isShown){this.$element.off("keydown.tabindex.modal")}},escape:function(){var e=this;if(this.isShown&&this.options.keyboard){if(!this.$element.attr("tabindex"))this.$element.attr("tabindex",-1);this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()})}else if(!this.isShown){this.$element.off("keyup.dismiss.modal")}},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end);t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n);t.hideModal()})},hideModal:function(){var e=this.options.height?"height":"max-height";var t=this.options.height||this.options.maxHeight;if(t){this.$element.find(".modal-body").css("overflow","").css(e,"")}this.$element.hide().trigger("hidden")},removeLoading:function(){this.$loading.remove();this.$loading=null;this.isLoading=false},loading:function(t){t=t||function(){};var n=this.$element.hasClass("fade")?"fade":"";if(!this.isLoading){var r=e.support.transition&&n;this.$loading=e('
    ').append(this.options.spinner).appendTo(this.$element);if(r)this.$loading[0].offsetWidth;this.$loading.addClass("in");this.isLoading=true;r?this.$loading.one(e.support.transition.end,t):t()}else if(this.isLoading&&this.$loading){this.$loading.removeClass("in");var i=this;e.support.transition&&this.$element.hasClass("fade")?this.$loading.one(e.support.transition.end,function(){i.removeLoading()}):i.removeLoading()}else if(t){t(this.isLoading)}},focus:function(){var e=this.$element.find(this.options.focusOn);e=e.length?e:this.$element;e.focus()},attention:function(){if(this.options.attentionAnimation){this.$element.removeClass("animated").removeClass(this.options.attentionAnimation);var e=this;setTimeout(function(){e.$element.addClass("animated").addClass(e.options.attentionAnimation)},0)}this.focus()},destroy:function(){var t=e.Event("destroy");this.$element.trigger(t);if(t.isDefaultPrevented())return;this.teardown()},teardown:function(){if(!this.$parent.length){this.$element.remove();this.$element=null;return}if(this.$parent!==this.$element.parent()){this.$element.appendTo(this.$parent)}this.$element.off(".modal");this.$element.removeData("modal");this.$element.removeClass("in").attr("aria-hidden",true)}};e.fn.modal=function(n,r){return this.each(function(){var i=e(this),s=i.data("modal"),o=e.extend({},e.fn.modal.defaults,i.data(),typeof n=="object"&&n);if(!s)i.data("modal",s=new t(this,o));if(typeof n=="string")s[n].apply(s,[].concat(r));else if(o.show)s.show()})};e.fn.modal.defaults={keyboard:true,backdrop:true,loading:false,show:true,width:null,height:null,maxHeight:null,modalOverflow:false,consumeTab:true,focusOn:null,replace:false,resize:false,attentionAnimation:"shake",manager:"body",spinner:'
    '};e.fn.modal.Constructor=t;e(function(){e(document).off("click.modal").on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault();i.modal(s).one("hide",function(){n.focus()})})})}(window.jQuery) \ No newline at end of file diff --git a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js b/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js deleted file mode 100644 index 81f557ad..00000000 --- a/local/modules/modules/Tinymce/Resources/js/tinymce/filemanager/js/bootstrap-modalmanager.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"use strict";function r(e){return function(t){if(this===t.target){return e.apply(this,arguments)}}}var t=function(e,t){this.init(e,t)};t.prototype={constructor:t,init:function(t,n){this.$element=e(t);this.options=e.extend({},e.fn.modalmanager.defaults,this.$element.data(),typeof n=="object"&&n);this.stack=[];this.backdropCount=0;if(this.options.resize){var r,i=this;e(window).on("resize.modal",function(){r&&clearTimeout(r);r=setTimeout(function(){for(var e=0;e').appendTo(this.$element)}else{n=this.$backdropHandle;n.off(".modalmanager");this.$backdropHandle=null;this.isLoading&&this.removeSpinner()}return n},removeContainer:function(e){e.$container.remove();e.$container=null},createContainer:function(t){var i;i=e(' -
    -
    - \ No newline at end of file diff --git a/local/modules/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl b/local/modules/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl deleted file mode 100644 index 6db9acb9..00000000 --- a/local/modules/modules/Tinymce/templates/backOffice/default/tinymce_init.tpl +++ /dev/null @@ -1,119 +0,0 @@ - - - diff --git a/local/modules/modules/VirtualProductControl/Config/config.xml b/local/modules/modules/VirtualProductControl/Config/config.xml deleted file mode 100644 index 689f7901..00000000 --- a/local/modules/modules/VirtualProductControl/Config/config.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - diff --git a/local/modules/modules/VirtualProductControl/Config/module.xml b/local/modules/modules/VirtualProductControl/Config/module.xml deleted file mode 100644 index 144f751e..00000000 --- a/local/modules/modules/VirtualProductControl/Config/module.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - VirtualProductControl\VirtualProductControl - - Virtual Product Controller - Check if a virtual product delivery module is enabled if at least one product is virtual - - - Contrôle de produit virtuel - Vérifie qu'un module de livraison pour produit virtuel soit activé si des produits virtuels existent - - 2.3.4 - - Manuel Raynaud - manu@raynaud.io - - classic - 2.2.0 - alpha - diff --git a/local/modules/modules/VirtualProductControl/Hook/VirtualProductHook.php b/local/modules/modules/VirtualProductControl/Hook/VirtualProductHook.php deleted file mode 100644 index 8ded689a..00000000 --- a/local/modules/modules/VirtualProductControl/Hook/VirtualProductHook.php +++ /dev/null @@ -1,62 +0,0 @@ - - */ -class VirtualProductHook extends BaseHook -{ - /** - * @var SecurityContext - */ - protected $securityContext; - - public function __construct(SecurityContext $securityContext) - { - $this->securityContext = $securityContext; - } - - public function onMainBeforeContent(HookRenderEvent $event) - { - if ($this->securityContext->isGranted( - ["ADMIN"], - [AdminResources::PRODUCT], - [], - [AccessManager::VIEW] - )) { - $products = ProductQuery::create() - ->filterByVirtual(1) - ->filterByVisible(1) - ->count(); - - if ($products > 0) { - $deliveryModule = ModuleQuery::create()->retrieveVirtualProductDelivery(); - - if (false === $deliveryModule) { - $event->add($this->render('virtual-delivery-warning.html')); - } - } - } - } -} diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php deleted file mode 100644 index aaa4698a..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Mindestens ein virtuelles Produkt ist verfügbar, aber kein Liefermodul für virtuellen Produkte ist aktiviert', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/en_US.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/en_US.php deleted file mode 100644 index 2b71ceb9..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'At least one virtual product is online but no virtual product delivery module enabled', -); diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php deleted file mode 100644 index b04c5963..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Au moins un produit virtuel est en vente mais aucun module de livraison pour produit virtuel n\'est activé', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php deleted file mode 100644 index 1a42252f..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Almeno un prodotto virtuale è online, ma nessun modulo di consegna del prodotto virtuale è abilitato', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php b/local/modules/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php deleted file mode 100644 index b2fd7a5e..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/backOffice/default/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'En az bir sanal ürün hiç sanal ürün teslim modülü etkin yayında', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/de_DE.php b/local/modules/modules/VirtualProductControl/I18n/de_DE.php deleted file mode 100644 index aaa4698a..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Mindestens ein virtuelles Produkt ist verfügbar, aber kein Liefermodul für virtuellen Produkte ist aktiviert', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/en_US.php b/local/modules/modules/VirtualProductControl/I18n/en_US.php deleted file mode 100644 index ecd80759..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/en_US.php +++ /dev/null @@ -1,4 +0,0 @@ - 'At least one virtual product is online but no virtual product delivery module enabled', -); diff --git a/local/modules/modules/VirtualProductControl/I18n/fr_FR.php b/local/modules/modules/VirtualProductControl/I18n/fr_FR.php deleted file mode 100644 index b04c5963..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Au moins un produit virtuel est en vente mais aucun module de livraison pour produit virtuel n\'est activé', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/it_IT.php b/local/modules/modules/VirtualProductControl/I18n/it_IT.php deleted file mode 100644 index 1a42252f..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Almeno un prodotto virtuale è online, ma nessun modulo di consegna del prodotto virtuale è abilitato', -]; diff --git a/local/modules/modules/VirtualProductControl/I18n/tr_TR.php b/local/modules/modules/VirtualProductControl/I18n/tr_TR.php deleted file mode 100644 index b2fd7a5e..00000000 --- a/local/modules/modules/VirtualProductControl/I18n/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'En az bir sanal ürün hiç sanal ürün teslim modülü etkin yayında', -]; diff --git a/local/modules/modules/VirtualProductControl/LICENSE.txt b/local/modules/modules/VirtualProductControl/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/VirtualProductControl/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/VirtualProductControl/VirtualProductControl.php b/local/modules/modules/VirtualProductControl/VirtualProductControl.php deleted file mode 100644 index e3211039..00000000 --- a/local/modules/modules/VirtualProductControl/VirtualProductControl.php +++ /dev/null @@ -1,20 +0,0 @@ - -
    - -
    - \ No newline at end of file diff --git a/local/modules/modules/VirtualProductDelivery/Config/config.xml b/local/modules/modules/VirtualProductDelivery/Config/config.xml deleted file mode 100644 index 1b16d36c..00000000 --- a/local/modules/modules/VirtualProductDelivery/Config/config.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/local/modules/modules/VirtualProductDelivery/Config/module.xml b/local/modules/modules/VirtualProductDelivery/Config/module.xml deleted file mode 100644 index 4efd7af9..00000000 --- a/local/modules/modules/VirtualProductDelivery/Config/module.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - VirtualProductDelivery\VirtualProductDelivery - - Virtual Products Delivery - - - Livraison Produits Virtuels - - - en_US - fr_FR - - 2.3.4 - - Julien Chanséaume - jchanseaume@openstudio.fr - - delivery - 2.2.0 - alpha - diff --git a/local/modules/modules/VirtualProductDelivery/EventListeners/SendMail.php b/local/modules/modules/VirtualProductDelivery/EventListeners/SendMail.php deleted file mode 100644 index 2eea49e5..00000000 --- a/local/modules/modules/VirtualProductDelivery/EventListeners/SendMail.php +++ /dev/null @@ -1,122 +0,0 @@ - - */ -class SendMail implements EventSubscriberInterface -{ - /** @var MailerFactory */ - protected $mailer; - - /** @var EventDispatcherInterface */ - protected $eventDispatcher; - - public function __construct(MailerFactory $mailer, EventDispatcherInterface $eventDispatcher) - { - $this->mailer = $mailer; - $this->eventDispatcher = $eventDispatcher; - } - - public function updateStatus(OrderEvent $event) - { - $order = $event->getOrder(); - - if ($order->hasVirtualProduct() && $order->isPaid(true)) { - $this->eventDispatcher->dispatch( - VirtualProductDeliveryEvents::ORDER_VIRTUAL_FILES_AVAILABLE, - $event - ); - } - } - - /** - * Send email to notify customer that files for virtual products are available - * - * @param OrderEvent $event - * @throws \Exception - */ - public function sendEmail(OrderEvent $event) - { - $order = $event->getOrder(); - - // Be sure that we have a document to download - $virtualProductCount = OrderProductQuery::create() - ->filterByOrderId($order->getId()) - ->filterByVirtual(true) - ->filterByVirtualDocument(null, Criteria::NOT_EQUAL) - ->count(); - - if ($virtualProductCount > 0) { - $customer = $order->getCustomer(); - - $this->mailer->sendEmailToCustomer( - 'mail_virtualproduct', - $customer, - [ - 'customer_id' => $customer->getId(), - 'order_id' => $order->getId(), - 'order_ref' => $order->getRef(), - 'order_date' => $order->getCreatedAt(), - 'update_date' => $order->getUpdatedAt() - ] - ); - } else { - Tlog::getInstance()->warning( - "Virtual product download message not sent to customer: there's nothing to downnload" - ); - } - } - - - /** - * Returns an array of event names this subscriber wants to listen to. - * - * The array keys are event names and the value can be: - * - * * The method name to call (priority defaults to 0) - * * An array composed of the method name to call and the priority - * * An array of arrays composed of the method names to call and respective - * priorities, or 0 if unset - * - * For instance: - * - * * array('eventName' => 'methodName') - * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) - * - * @return array The event names to listen to - * - * @api - */ - public static function getSubscribedEvents() - { - return array( - TheliaEvents::ORDER_UPDATE_STATUS => array("updateStatus", 128), - VirtualProductDeliveryEvents::ORDER_VIRTUAL_FILES_AVAILABLE => array("sendEmail", 128) - ); - } -} diff --git a/local/modules/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php b/local/modules/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php deleted file mode 100644 index 8b398ea6..00000000 --- a/local/modules/modules/VirtualProductDelivery/EventListeners/VirtualProductEvents.php +++ /dev/null @@ -1,119 +0,0 @@ - - */ -class VirtualProductEvents implements EventSubscriberInterface -{ - - public function handleOrder(VirtualProductOrderHandleEvent $event) - { - $documentId = MetaDataQuery::getVal( - 'virtual', - MetaDataModel::PSE_KEY, - $event->getPseId() - ); - - if (null !== $documentId) { - $productDocument = ProductDocumentQuery::create()->findPk($documentId); - if (null !== $productDocument) { - $event->setPath($productDocument->getFile()); - } - } - - } - - public function download(VirtualProductOrderDownloadResponseEvent $event) - { - $orderProduct = $event->getOrderProduct(); - - if ($orderProduct->getVirtualDocument()) { - $baseSourceFilePath = ConfigQuery::read('documents_library_path'); - if ($baseSourceFilePath === null) { - $baseSourceFilePath = THELIA_LOCAL_DIR . 'media' . DS . 'documents'; - } else { - $baseSourceFilePath = THELIA_ROOT . $baseSourceFilePath; - } - - // try to get the file - $path = $baseSourceFilePath . DS . 'product' . DS . $orderProduct->getVirtualDocument(); - - if (!is_file($path) || !is_readable($path)) { - throw new \ErrorException( - Translator::getInstance()->trans( - "The file [%file] does not exist", - [ - "%file" => $orderProduct->getId() - ], - VirtualProductDelivery::MESSAGE_DOMAIN - ) - ); - } - - $response = new BinaryFileResponse($path); - $response->setContentDisposition(ResponseHeaderBag::DISPOSITION_ATTACHMENT); - $event->setResponse($response); - - } - } - - - - /** - * Returns an array of event names this subscriber wants to listen to. - * - * The array keys are event names and the value can be: - * - * * The method name to call (priority defaults to 0) - * * An array composed of the method name to call and the priority - * * An array of arrays composed of the method names to call and respective - * priorities, or 0 if unset - * - * For instance: - * - * * array('eventName' => 'methodName') - * * array('eventName' => array('methodName', $priority)) - * * array('eventName' => array(array('methodName1', $priority), array('methodName2')) - * - * @return array The event names to listen to - * - * @api - */ - public static function getSubscribedEvents() - { - return [ - TheliaEvents::VIRTUAL_PRODUCT_ORDER_HANDLE => ['handleOrder', 128], - TheliaEvents::VIRTUAL_PRODUCT_ORDER_DOWNLOAD_RESPONSE => ['download', 128] - ]; - } -} diff --git a/local/modules/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php b/local/modules/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php deleted file mode 100644 index 4850aa69..00000000 --- a/local/modules/modules/VirtualProductDelivery/Events/VirtualProductDeliveryEvents.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ -class VirtualProductDeliveryEvents extends ActionEvent -{ - const ORDER_VIRTUAL_FILES_AVAILABLE = 'virtual_product_delivery.virtual_files_available'; -} diff --git a/local/modules/modules/VirtualProductDelivery/Hook/HookManager.php b/local/modules/modules/VirtualProductDelivery/Hook/HookManager.php deleted file mode 100644 index 8dab669f..00000000 --- a/local/modules/modules/VirtualProductDelivery/Hook/HookManager.php +++ /dev/null @@ -1,39 +0,0 @@ - - */ -class HookManager extends BaseHook -{ - public function onAccountOrderAfterProducts(HookRenderEvent $event) - { - $orderId = $event->getArgument('order'); - - if (null !== $orderId) { - $render = $this->render( - 'account-order-after-products.html', - [ - "order_id" => $orderId - ] - ); - $event->add($render); - } - } -} diff --git a/local/modules/modules/VirtualProductDelivery/I18n/de_DE.php b/local/modules/modules/VirtualProductDelivery/I18n/de_DE.php deleted file mode 100644 index 774ee9be..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/de_DE.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Bestellung {$order_ref} validiert. Laden Sie Ihre Dateien herunter.', - 'The file [%file] does not exist' => 'Die Datei [%file] existiert nicht', - 'This module cannot be used on the current cart.' => 'Dieses Modul kann nicht für diesen Warenkorb benutzt werden. ', - 'Virtual product download message' => 'Virtuelles Produkt Herunterladung Nachricht', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/email/default/en_US.php b/local/modules/modules/VirtualProductDelivery/I18n/email/default/en_US.php deleted file mode 100644 index 6f40b67a..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/email/default/en_US.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Best Regards.', - 'Feel free to contact us for any further information.' => 'Feel free to contact us for any further information.', - 'Products:' => 'Products:', - 'You have to be logged in to your account to download this files.' => 'You have to be logged in to your account to download this files.', - 'Your order %ref has been validated. You can download your files.' => 'Your order %ref has been validated. You can download your files.', - 'have to be logged in to your account to download this files.' => 'have to be logged in to your account to download this files.', -); diff --git a/local/modules/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php b/local/modules/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php deleted file mode 100644 index 4a751a8f..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/email/default/fr_FR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Cordialement', - 'Feel free to contact us for any further information.' => 'N\'hésitez pas à nous contacter pour toute information complémentaire.', - 'Products:' => 'Articles à télécharger:', - 'You have to be logged in to your account to download this files.' => 'Vous devez être connecté à votre compte pour pouvoir télécharger le fichier.', - 'Your order %ref has been validated. You can download your files.' => 'Votre commande %ref a été validé. Vous pouvez désormais télécharger vos fichiers.', - 'have to be logged in to your account to download this files.' => 'Vous devez être connecté à votre compte pour pouvoir télécharger les fichiers.', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/email/default/it_IT.php b/local/modules/modules/VirtualProductDelivery/I18n/email/default/it_IT.php deleted file mode 100644 index 97ea8be1..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/email/default/it_IT.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Distinti saluti.', - 'Feel free to contact us for any further information.' => 'Non esitate a contattarci per qualsiasi ulteriore informazione.', - 'Products:' => 'Prodotti:', - 'You have to be logged in to your account to download this files.' => 'Devi essere loggato al tuo account per poter scaricare questi file.', - 'Your order %ref has been validated. You can download your files.' => 'Il vostro ordine %ref è stato convalidato. È possibile scaricare i file.', - 'have to be logged in to your account to download this files.' => 'devi essere loggato al tuo account per poter scaricare questi file.', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php b/local/modules/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php deleted file mode 100644 index f814b8fe..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/email/default/tr_TR.php +++ /dev/null @@ -1,10 +0,0 @@ - 'Saygılarımızla,.', - 'Feel free to contact us for any further information.' => 'Daha fazla bilgi için bizimle temas kurmaktan çekinmeyin.', - 'Products:' => 'ürün:', - 'You have to be logged in to your account to download this files.' => 'Bu dosyaları karşıdan yüklemek için hesabınıza oturum açmış olmanız gerekir.', - 'Your order %ref has been validated. You can download your files.' => 'Sipariş %ref doğrulandı. Sen-ebilmek download senin eğe.', - 'have to be logged in to your account to download this files.' => 'Bu dosyaları karşıdan yüklemek için hesabınıza oturum açmış olmanız gerekir.', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/en_US.php b/local/modules/modules/VirtualProductDelivery/I18n/en_US.php deleted file mode 100644 index f197297f..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/en_US.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Order {$order_ref} validated. Download your files.', - 'The file [%file] does not exist' => 'The file [%file] does not exist', - 'This module cannot be used on the current cart.' => 'This module cannot be used on the current cart.', - 'Virtual product download message' => 'Virtual product download message', -); diff --git a/local/modules/modules/VirtualProductDelivery/I18n/fr_FR.php b/local/modules/modules/VirtualProductDelivery/I18n/fr_FR.php deleted file mode 100644 index 4d258b83..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/fr_FR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Commande {$order_ref} validée. Téléchargez vos fichiers.', - 'The file [%file] does not exist' => 'le fichier [%file] n\'existe pas', - 'This module cannot be used on the current cart.' => 'Ce module ne peut pas être utilisé avec le panier actuel.', - 'Virtual product download message' => 'Message pour le téléchargement des produits virtuels', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php deleted file mode 100644 index 07fa0462..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/de_DE.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Lieferadresse', - 'Download' => 'Herunterladen', - 'File' => 'Datei', - 'List of downloadable files' => 'Liste der herunterladbaren Dateien', - 'No delivery address for this delivery method' => 'Keine Lieferadresse für diese Liefermethode', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php deleted file mode 100644 index 8d11f5e0..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/en_US.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Delivery address', - 'Download' => 'Download', - 'File' => 'File', - 'List of downloadable files' => 'List of downloadable files', - 'No delivery address for this delivery method' => 'No delivery address for this delivery method', -); diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php deleted file mode 100644 index d12b648f..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/fr_FR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Adresse de livraison', - 'Download' => 'Télécharger', - 'File' => 'Fichier', - 'List of downloadable files' => 'Liste des fichiers téléchargeables', - 'No delivery address for this delivery method' => 'L\'adresse de livraison n\'est pas nécessaire pour cette méthode de livraison', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php deleted file mode 100644 index 7abc77b8..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/it_IT.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Indirizzo di consegna', - 'File' => 'File', - 'List of downloadable files' => 'Elenco dei file scaricabili', - 'No delivery address for this delivery method' => 'Nessun indirizzo di consegna per questo metodo di consegna', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php b/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php deleted file mode 100644 index 040103d3..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/frontOffice/default/tr_TR.php +++ /dev/null @@ -1,9 +0,0 @@ - 'Teslimat adresi', - 'Download' => 'İndir', - 'File' => 'Dosya', - 'List of downloadable files' => 'İndirilebilir dosyalar', - 'No delivery address for this delivery method' => 'Bu teslim yöntemi için hiçbir teslimat adresi', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/it_IT.php b/local/modules/modules/VirtualProductDelivery/I18n/it_IT.php deleted file mode 100644 index b286eca2..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/it_IT.php +++ /dev/null @@ -1,7 +0,0 @@ - 'Ordine {$order_ref} convalidato. Scarica i tuoi file.', - 'The file [%file] does not exist' => 'Il file [%file] non esiste', - 'This module cannot be used on the current cart.' => 'Questo modulo non può essere utilizzato sul carrello attuale.', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php deleted file mode 100644 index c3097e65..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/de_DE.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Keine Lieferadresse für diese Liefermethode', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php deleted file mode 100644 index 205aa3f4..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/en_US.php +++ /dev/null @@ -1,5 +0,0 @@ - 'No delivery address for this delivery method', -); diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php deleted file mode 100644 index b2088c85..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/fr_FR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'L\'adresse de livraison n\'est pas nécessaire pour cette méthode de livraison', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php deleted file mode 100644 index c36c7201..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/it_IT.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Nessun indirizzo di consegna per questo metodo di consegna', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php b/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php deleted file mode 100644 index bbef2c98..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/pdf/default/tr_TR.php +++ /dev/null @@ -1,5 +0,0 @@ - 'Bu teslim yöntemi için hiçbir teslimat adresi', -]; diff --git a/local/modules/modules/VirtualProductDelivery/I18n/tr_TR.php b/local/modules/modules/VirtualProductDelivery/I18n/tr_TR.php deleted file mode 100644 index 978854a2..00000000 --- a/local/modules/modules/VirtualProductDelivery/I18n/tr_TR.php +++ /dev/null @@ -1,8 +0,0 @@ - 'Doğrulanmış {$order_ref} sipariş. Download senin eğe.', - 'The file [%file] does not exist' => '[%file] dosyası yok', - 'This module cannot be used on the current cart.' => 'Bu modül geçerli arabaya kullanılamaz.', - 'Virtual product download message' => 'Sanal ürün indir mesaj', -]; diff --git a/local/modules/modules/VirtualProductDelivery/LICENSE.txt b/local/modules/modules/VirtualProductDelivery/LICENSE.txt deleted file mode 100644 index 65c5ca88..00000000 --- a/local/modules/modules/VirtualProductDelivery/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. diff --git a/local/modules/modules/VirtualProductDelivery/VirtualProductDelivery.php b/local/modules/modules/VirtualProductDelivery/VirtualProductDelivery.php deleted file mode 100644 index 7568fd5a..00000000 --- a/local/modules/modules/VirtualProductDelivery/VirtualProductDelivery.php +++ /dev/null @@ -1,105 +0,0 @@ -getRequest()->getSession()->getSessionCart($this->getDispatcher())->isVirtual(); - } - - public function getPostage(Country $country) - { - if (!$this->isValidDelivery($country)) { - throw new DeliveryException( - $this->trans("This module cannot be used on the current cart.") - ); - } - - return 0.0; - } - - /** - * This module manages virtual product delivery - * - * @return bool - */ - public function handleVirtualProductDelivery() - { - return true; - } - - - public function postActivation(ConnectionInterface $con = null) - { - // create new message - if (null === MessageQuery::create()->findOneByName('mail_virtualproduct')) { - $message = new Message(); - $message - ->setName('mail_virtualproduct') - ->setHtmlTemplateFileName('virtual-product-download.html') - ->setHtmlLayoutFileName('') - ->setTextTemplateFileName('virtual-product-download.txt') - ->setTextLayoutFileName('') - ->setSecured(0); - - $languages = LangQuery::create()->find(); - - foreach ($languages as $language) { - $locale = $language->getLocale(); - - $message->setLocale($locale); - - $message->setSubject( - $this->trans('Order {$order_ref} validated. Download your files.', [], $locale) - ); - $message->setTitle( - $this->trans('Virtual product download message', [], $locale) - ); - } - - $message->save(); - } - } - - protected function trans($id, $parameters = [], $locale = null) - { - if (null === $this->translator) { - $this->translator = Translator::getInstance(); - } - - return $this->translator->trans($id, $parameters, self::MESSAGE_DOMAIN, $locale); - } -} diff --git a/local/modules/modules/VirtualProductDelivery/composer.json b/local/modules/modules/VirtualProductDelivery/composer.json deleted file mode 100644 index 77460d83..00000000 --- a/local/modules/modules/VirtualProductDelivery/composer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "thelia/virtual-product-delivery-module", - "license": "LGPL-3.0+", - "type": "thelia-module", - "require": { - "thelia/installer": "~1.1" - }, - "extra": { - "installer-name": "VirtualProductDelivery" - } -} diff --git a/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html b/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html deleted file mode 100644 index f7069b3b..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.html +++ /dev/null @@ -1,29 +0,0 @@ -{default_translation_domain domain="virtualproductdelivery.email.default"} -{default_locale locale={$locale}} - -{loop name="order.invoice" type="order" id=$order_id customer="*" limit="1" backend_context="1"} -

    - {intl l="Your order %ref has been validated. You can download your files." ref={$REF}}

    - -

    {intl l="Products:"}

    - -
      - {loop type="order_product" name="order-products" order=$ID virtual="1" backend_context="1"} -
    • - {$TITLE} : {url path="/account/download/$ID"} - {ifloop rel="combinations"} -
      - {loop type="order_product_attribute_combination" name="combinations" order_product=$ID} - {$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE} - {/loop} - {/ifloop} -
    • - {/loop} -
    -{/loop} - -

    {intl l="You have to be logged in to your account to download this files."}

    - -

    {intl l="Feel free to contact us for any further information."}

    - -

    {intl l="Best Regards."}

    \ No newline at end of file diff --git a/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt b/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt deleted file mode 100644 index 9fc5592b..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/email/default/virtual-product-download.txt +++ /dev/null @@ -1,26 +0,0 @@ -{default_translation_domain domain="virtualproductdelivery.email.default"} -{default_locale locale={$locale}} - -{loop name="order.invoice" type="order" id=$order_id customer="*" limit="1" backend_context="1"} - -{intl l="Your order %ref has been validated. You can download your files." ref={$REF}} - ----------------------------------------------------------------------- -{intl l="Products:"} ----------------------------------------------------------------------- -{loop type="order_product" name="order-products" order=$ID virtual="1" backend_context="1"} -{$TITLE} : {url path="/account/download/$ID"} -{ifloop rel="combinations"} -{loop type="order_product_attribute_combination" name="combinations" order_product=$ID} -{$ATTRIBUTE_TITLE} - {$ATTRIBUTE_AVAILABILITY_TITLE} -{/loop} -{/ifloop} ----------------------------------------------------------------------- -{/loop} -{/loop} - -{intl l="You have to be logged in to your account to download this files."} - -{intl l="Feel free to contact us for any further information."} - -{intl l="Best Regards."} \ No newline at end of file diff --git a/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html b/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html deleted file mode 100644 index c4384e7a..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/account-order-after-products.html +++ /dev/null @@ -1,24 +0,0 @@ -{loop type="order" name="virtual.order" id="$order_id" limit="1"} -{if $STATUS >=2 && $VIRTUAL} - - - - - - - - - {loop name="virtual.order.products" type="order_product" virtual="1" order={$ID}} - - - - - {/loop} - -
    {intl l="File" d='virtualproductdelivery.fo.default'}{intl l="Download" d='virtualproductdelivery.fo.default'}
    {$TITLE} - - {intl l="Download" d='virtualproductdelivery.fo.default'} - -
    -{/if} -{/loop} diff --git a/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html b/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html deleted file mode 100644 index ceb1e750..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/frontOffice/default/delivery-address.html +++ /dev/null @@ -1,6 +0,0 @@ -
    -
    {intl l="Delivery address" d="virtualproductdelivery.fo.default"}
    -
    - {intl l="No delivery address for this delivery method" d="virtualproductdelivery.fo.default"} -
    -
    \ No newline at end of file diff --git a/local/modules/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html b/local/modules/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html deleted file mode 100644 index 6a5a1f92..00000000 --- a/local/modules/modules/VirtualProductDelivery/templates/pdf/default/delivery-address.html +++ /dev/null @@ -1,3 +0,0 @@ -

    - {intl l="No delivery address for this delivery method" d="virtualproductdelivery.pdf.default"} -

    \ No newline at end of file diff --git a/templates/frontOffice/boutique/layout.tpl b/templates/frontOffice/boutique/layout.tpl index 141dac13..be37a04c 100644 --- a/templates/frontOffice/boutique/layout.tpl +++ b/templates/frontOffice/boutique/layout.tpl @@ -39,6 +39,7 @@ GNU General Public License : http://www.gnu.org/licenses/ + {hook name="main.head-top"} {* Test if javascript is enabled *}