Version Notes
Magento 1.3: if you use another language than english or german, than the "Strong Identifier" attribute is named "EAN Code" in the backend. But it also works well with GTIN-8 or GTIN-14 (configurable in the global MSemantic configuration). You can rename the label of this attribute manually in the table eav_attribute (attribute_code is gr_ean).
Download this release
Release Info
| Developer | Magento Core Team |
| Extension | Semantium_MSemanticBasic |
| Version | 1.2.6 |
| Comparing to | |
| See all releases | |
Code changes from version 1.2.5 to 1.2.6
- app/code/community/Semantium/MSemanticBasic/Helper/AbstractFormat.php +2 -0
- app/code/community/Semantium/MSemanticBasic/Model/GoodRelations.php +118 -94
- app/code/community/Semantium/MSemanticBasic/Model/Observer.php +1 -1
- app/code/community/Semantium/MSemanticBasic/Model/Sitemap.php +145 -0
- app/code/community/Semantium/MSemanticBasic/Model/System/Config/Source/Product/Attributes.php +22 -0
- app/code/community/Semantium/MSemanticBasic/changelog.txt +14 -0
- app/code/community/Semantium/MSemanticBasic/etc/config.xml +14 -2
- app/code/community/Semantium/MSemanticBasic/etc/system.xml +22 -0
- app/code/community/Semantium/MSemanticBasic/sql/msemanticbasic_setup/mysql4-install-0.9.9.3.2.php +0 -4
- app/code/community/Semantium/MSemanticBasic/sql/msemanticbasic_setup/mysql4-install-1.2.6.php +80 -0
- app/code/community/Semantium/MSemanticBasic/sql/msemanticbasic_setup/mysql4-upgrade-0.9.9.2-0.9.9.3.php +0 -4
- app/code/community/Semantium/MSemanticBasic/sql/msemanticbasic_setup/mysql4-upgrade-1.2.6-1.2.6.php +81 -0
- app/etc/modules/Semantium_MSemanticBasic.xml +3 -0
- package.xml +4 -4
app/code/community/Semantium/MSemanticBasic/Helper/AbstractFormat.php
CHANGED
|
@@ -45,6 +45,8 @@ abstract class Semantium_MSemanticBasic_Helper_AbstractFormat extends Mage_Core_
|
|
| 45 |
"gr:validThrough" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#dateTime"',
|
| 46 |
"gr:eligibleRegions" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#string"',
|
| 47 |
"gr:hasCurrencyValue" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#float"',
|
|
|
|
|
|
|
| 48 |
"gr:hasCurrency" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#string"',
|
| 49 |
"gr:hasUnitOfMeasurement" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#string"',
|
| 50 |
"gr:valueAddedTaxIncluded" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#boolean"',
|
| 45 |
"gr:validThrough" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#dateTime"',
|
| 46 |
"gr:eligibleRegions" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#string"',
|
| 47 |
"gr:hasCurrencyValue" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#float"',
|
| 48 |
+
"gr:hasMaxCurrencyValue" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#float"',
|
| 49 |
+
"gr:hasMinCurrencyValue" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#float"',
|
| 50 |
"gr:hasCurrency" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#string"',
|
| 51 |
"gr:hasUnitOfMeasurement" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#string"',
|
| 52 |
"gr:valueAddedTaxIncluded" => '{rdf}datatype="http://www.w3.org/2001/XMLSchema#boolean"',
|
app/code/community/Semantium/MSemanticBasic/Model/GoodRelations.php
CHANGED
|
@@ -500,24 +500,31 @@ $manufacturers = $attribute->getSource()->getAllOptions(false);
|
|
| 500 |
$pDescr = htmlspecialchars($pDescr);
|
| 501 |
$statements .= $this->RDFS->pDesc( $pDescr, $localeCode );
|
| 502 |
|
| 503 |
-
$inv = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product)->getQty();
|
| 504 |
-
|
| 505 |
-
$statements .= "<div rel=\"gr:hasInventoryLevel\">
|
| 506 |
-
<div typeof=\"gr:QuantitativeValue\">
|
| 507 |
-
<div property=\"gr:hasMinValue\" content=\"".round($inv,0)."\" datatype=\"xsd:float\">".
|
| 508 |
-
"</div>
|
| 509 |
-
<div property=\"gr:hasUnitOfMeasurement\" datatype=\"xsd:string\" content=\"C62\"></div>
|
| 510 |
-
</div>
|
| 511 |
-
</div>
|
| 512 |
-
";
|
| 513 |
|
| 514 |
//$statements .= Mage::getStoreConfig('catalog/review');
|
| 515 |
//review stuff
|
|
|
|
|
|
|
| 516 |
$array = Mage::getStoreConfig('catalog/review');
|
| 517 |
if ($array['allow_guest'] == 1) // reviews active
|
| 518 |
$statements .= $this->pReview();
|
| 519 |
$grOffering .= $this->rdff->wrapStatements($statements, $this->getURI('offering'), "gr:Offering");
|
| 520 |
$isSaleable = $this->Product->isSaleable();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 521 |
return $grOffering;
|
| 522 |
|
| 523 |
}
|
|
@@ -562,10 +569,16 @@ $manufacturers = $attribute->getSource()->getAllOptions(false);
|
|
| 562 |
return $pHasBusinessFunction;
|
| 563 |
}
|
| 564 |
|
|
|
|
|
|
|
|
|
|
| 565 |
protected function pHasPriceSpecification()
|
| 566 |
{
|
| 567 |
$priceSpecifications = "";
|
| 568 |
-
|
|
|
|
|
|
|
|
|
|
| 569 |
|
| 570 |
//check if tax is in price
|
| 571 |
$tax = Mage::helper('tax');
|
|
@@ -576,74 +589,69 @@ $manufacturers = $attribute->getSource()->getAllOptions(false);
|
|
| 576 |
// check if special price
|
| 577 |
|
| 578 |
if ($this->Product->getSpecialPrice()) {
|
| 579 |
-
|
| 580 |
-
|
| 581 |
-
|
| 582 |
-
|
| 583 |
-
|
| 584 |
-
|
| 585 |
-
|
| 586 |
-
|
| 587 |
-
|
| 588 |
-
|
| 589 |
-
// spec. price
|
| 590 |
-
// first regular price
|
| 591 |
-
|
| 592 |
-
// $statements = $this->rdff->properties($propArray_reg,$this->getReplacements());
|
| 593 |
-
|
| 594 |
-
// $statements .= $this->validFromThrough();
|
| 595 |
|
| 596 |
-
|
| 597 |
-
|
| 598 |
-
|
| 599 |
-
|
| 600 |
-
|
| 601 |
-
|
| 602 |
-
|
| 603 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 604 |
|
| 605 |
-
if ( $this->Product->getSpecialToDate() ){
|
| 606 |
-
$validproperties = array(
|
| 607 |
-
"gr:validFrom" => $this->div->dateToIso8601( $this->Product->getSpecialFromDate() ),
|
| 608 |
-
"gr:validThrough" => $this->div->dateToIso8601( $this->Product->getSpecialToDate() )
|
| 609 |
-
);
|
| 610 |
-
$statements .= $this->rdff->properties($validproperties, $this->getReplacements());
|
| 611 |
|
| 612 |
-
}
|
| 613 |
else {
|
| 614 |
-
|
| 615 |
-
|
| 616 |
-
|
| 617 |
-
|
| 618 |
|
| 619 |
-
$attributes = $this->rdff->wrapStatements($statements, $this->getURI("specialUnitPriceSpecification"), "gr:UnitPriceSpecification" );
|
| 620 |
-
|
| 621 |
-
|
| 622 |
-
|
| 623 |
-
}
|
| 624 |
-
|
| 625 |
-
|
| 626 |
-
else {
|
| 627 |
-
$propArray = array(
|
| 628 |
-
"gr:hasCurrencyValue" => round($this->Product->getFinalPrice(1), 2), // 1 unit
|
| 629 |
-
"gr:hasCurrency" => Mage::app()->getStore()->getCurrentCurrencyCode(),
|
| 630 |
-
"gr:hasUnitOfMeasurement" => "C62" // price per unit
|
| 631 |
-
);
|
| 632 |
-
$statements = $this->rdff->properties($propArray,$this->getReplacements());
|
| 633 |
-
|
| 634 |
-
$statements .= $this->validFromThrough();
|
| 635 |
|
| 636 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 637 |
|
| 638 |
-
//$attributes .= $this->pValidFromThrough();
|
| 639 |
|
| 640 |
-
}
|
| 641 |
-
|
| 642 |
$priceSpecifications .= $this->rdff->wrapRel($attributes, "gr:hasPriceSpecification");
|
| 643 |
|
| 644 |
return $priceSpecifications;
|
| 645 |
}
|
| 646 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 647 |
protected function pValidFromThrough()
|
| 648 |
{
|
| 649 |
$validFrom = date("Y-m-d", strtotime("now"));
|
|
@@ -740,7 +748,7 @@ $manufacturers = $attribute->getSource()->getAllOptions(false);
|
|
| 740 |
|
| 741 |
$productId = $this->Product->getId();
|
| 742 |
$product = Mage::getModel('catalog/product')->load($productId);
|
| 743 |
-
|
| 744 |
|
| 745 |
|
| 746 |
if ($product->getData('condition')) {
|
|
@@ -767,35 +775,38 @@ $manufacturers = $attribute->getSource()->getAllOptions(false);
|
|
| 767 |
$statements .= $this->rdff->rel("gr:hasManufacturer",$this->Business->getBaseURL() . '#manufacturer_'.$product->getData('manufacturer'), NULL,"en");
|
| 768 |
}
|
| 769 |
|
|
|
|
| 770 |
|
| 771 |
-
$categoryIds = $product->getCategoryIds();
|
| 772 |
|
| 773 |
-
foreach($categoryIds as $categoryId) {
|
| 774 |
-
|
| 775 |
|
| 776 |
-
|
| 777 |
-
|
| 778 |
-
|
| 779 |
-
|
| 780 |
-
|
| 781 |
-
|
| 782 |
-
|
| 783 |
-
|
| 784 |
-
|
| 785 |
-
|
| 786 |
|
| 787 |
if ($category->getName()) $statements .= $this->rdff->property("gr:category",htmlentities($category_name.$category->getName(),ENT_QUOTES,"UTF-8"),NULL,$this->sysinfo->getLocaleCode());
|
| 788 |
|
| 789 |
}
|
| 790 |
|
|
|
|
| 791 |
|
| 792 |
-
|
| 793 |
-
|
| 794 |
-
|
| 795 |
-
|
|
|
|
|
|
|
| 796 |
if ($strongId)
|
| 797 |
{
|
| 798 |
-
|
| 799 |
$settings = Mage::getStoreConfig("semantium");
|
| 800 |
$strongid_type = @$settings['strongid']['strongid_type'];
|
| 801 |
|
|
@@ -823,18 +834,31 @@ foreach($categoryIds as $categoryId) {
|
|
| 823 |
|
| 824 |
// dawn of template style
|
| 825 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 826 |
$inv = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product)->getQty();
|
| 827 |
-
|
| 828 |
-
|
| 829 |
-
|
| 830 |
-
|
| 831 |
-
"</div>
|
| 832 |
-
<div property=\"gr:hasUnitOfMeasurement\" datatype=\"xsd:string\" content=\"C62\"></div>
|
| 833 |
-
</div>
|
| 834 |
-
</div>
|
| 835 |
-
";
|
| 836 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 837 |
|
|
|
|
| 838 |
|
| 839 |
|
| 840 |
|
| 500 |
$pDescr = htmlspecialchars($pDescr);
|
| 501 |
$statements .= $this->RDFS->pDesc( $pDescr, $localeCode );
|
| 502 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 503 |
|
| 504 |
//$statements .= Mage::getStoreConfig('catalog/review');
|
| 505 |
//review stuff
|
| 506 |
+
$statements .= "
|
| 507 |
+
<div rel=\"foaf:maker\" resource=\"urn:goodrelations_shop_extensions:msemantic:v1.2.6\"></div>";
|
| 508 |
$array = Mage::getStoreConfig('catalog/review');
|
| 509 |
if ($array['allow_guest'] == 1) // reviews active
|
| 510 |
$statements .= $this->pReview();
|
| 511 |
$grOffering .= $this->rdff->wrapStatements($statements, $this->getURI('offering'), "gr:Offering");
|
| 512 |
$isSaleable = $this->Product->isSaleable();
|
| 513 |
+
|
| 514 |
+
/* #This will be the related product code.
|
| 515 |
+
$related = $product->getUpsellProducts();
|
| 516 |
+
# print gettype($related);
|
| 517 |
+
# $related->load();
|
| 518 |
+
foreach ($related as $item) {
|
| 519 |
+
# $item->setDoNotUseCategoryId(true);
|
| 520 |
+
print $item->getProductUrl();
|
| 521 |
+
print $item->getName();
|
| 522 |
+
# print gettype($item);
|
| 523 |
+
}
|
| 524 |
+
*/
|
| 525 |
+
|
| 526 |
+
|
| 527 |
+
|
| 528 |
return $grOffering;
|
| 529 |
|
| 530 |
}
|
| 569 |
return $pHasBusinessFunction;
|
| 570 |
}
|
| 571 |
|
| 572 |
+
|
| 573 |
+
###################
|
| 574 |
+
|
| 575 |
protected function pHasPriceSpecification()
|
| 576 |
{
|
| 577 |
$priceSpecifications = "";
|
| 578 |
+
$productId = $this->Product->getId();
|
| 579 |
+
|
| 580 |
+
$product = Mage::getModel('catalog/product')->load($productId);
|
| 581 |
+
$storeId = Mage::app()->getStore()->getId();
|
| 582 |
|
| 583 |
//check if tax is in price
|
| 584 |
$tax = Mage::helper('tax');
|
| 589 |
// check if special price
|
| 590 |
|
| 591 |
if ($this->Product->getSpecialPrice()) {
|
| 592 |
+
$propArray_reg = array(
|
| 593 |
+
"gr:hasCurrencyValue" => round($this->Product->getPrice(1), 2), // 1 unit
|
| 594 |
+
"gr:hasCurrency" => Mage::app()->getStore()->getCurrentCurrencyCode(),
|
| 595 |
+
"gr:hasUnitOfMeasurement" => "C62" // price per unit
|
| 596 |
+
);
|
| 597 |
+
$propArray_special = array(
|
| 598 |
+
"gr:hasCurrencyValue" => round($this->Product->getSpecialPrice(1), 2), // 1 unit
|
| 599 |
+
"gr:hasCurrency" => Mage::app()->getStore()->getCurrentCurrencyCode(),
|
| 600 |
+
"gr:hasUnitOfMeasurement" => "C62" // price per unit
|
| 601 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 602 |
|
| 603 |
+
$statements = $this->rdff->properties($propArray_special,$this->getReplacements());
|
| 604 |
+
|
| 605 |
+
if ( $this->Product->getSpecialToDate() ){
|
| 606 |
+
$validproperties = array(
|
| 607 |
+
"gr:validFrom" => $this->div->dateToIso8601( $this->Product->getSpecialFromDate() ),
|
| 608 |
+
"gr:validThrough" => $this->div->dateToIso8601( $this->Product->getSpecialToDate() )
|
| 609 |
+
);
|
| 610 |
+
$statements .= $this->rdff->properties($validproperties, $this->getReplacements());
|
| 611 |
+
}
|
| 612 |
+
else { $statements .= $this->validFromThrough();}
|
| 613 |
+
|
| 614 |
+
$attributes = $this->rdff->wrapStatements($statements, $this->getURI("specialUnitPriceSpecification"), "gr:UnitPriceSpecification" );
|
| 615 |
+
}
|
| 616 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 617 |
|
|
|
|
| 618 |
else {
|
| 619 |
+
// pricing
|
|
|
|
|
|
|
|
|
|
| 620 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 621 |
|
| 622 |
+
|
| 623 |
+
|
| 624 |
+
if ($product->getTypeId() == "bundle") {
|
| 625 |
+
|
| 626 |
+
// get min price of bundle
|
| 627 |
+
|
| 628 |
+
$minmax = $product->getPriceModel()->getPrices($product);
|
| 629 |
+
$propArray["gr:hasMinCurrencyValue"] = round($minmax[0],2);
|
| 630 |
+
$propArray["gr:hasMaxCurrencyValue"] = round($minmax[1],2); }
|
| 631 |
+
|
| 632 |
+
else { $propArray["gr:hasCurrencyValue"] = round($this->Product->getFinalPrice(1), 2); }
|
| 633 |
+
|
| 634 |
+
// rest of array
|
| 635 |
+
$propArray["gr:hasCurrency"] = Mage::app()->getStore()->getCurrentCurrencyCode();
|
| 636 |
+
$propArray["gr:hasUnitOfMeasurement"] = "C62";
|
| 637 |
+
|
| 638 |
+
$statements = $this->rdff->properties($propArray,$this->getReplacements());
|
| 639 |
+
$statements .= $this->validFromThrough();
|
| 640 |
+
$attributes = $this->rdff->wrapStatements($statements, $this->getURI("unitPriceSpecification"), "gr:UnitPriceSpecification" );
|
| 641 |
+
|
| 642 |
+
}
|
| 643 |
|
|
|
|
| 644 |
|
|
|
|
|
|
|
| 645 |
$priceSpecifications .= $this->rdff->wrapRel($attributes, "gr:hasPriceSpecification");
|
| 646 |
|
| 647 |
return $priceSpecifications;
|
| 648 |
}
|
| 649 |
|
| 650 |
+
|
| 651 |
+
###########################
|
| 652 |
+
|
| 653 |
+
|
| 654 |
+
|
| 655 |
protected function pValidFromThrough()
|
| 656 |
{
|
| 657 |
$validFrom = date("Y-m-d", strtotime("now"));
|
| 748 |
|
| 749 |
$productId = $this->Product->getId();
|
| 750 |
$product = Mage::getModel('catalog/product')->load($productId);
|
| 751 |
+
$storeId = Mage::app()->getStore()->getId();
|
| 752 |
|
| 753 |
|
| 754 |
if ($product->getData('condition')) {
|
| 775 |
$statements .= $this->rdff->rel("gr:hasManufacturer",$this->Business->getBaseURL() . '#manufacturer_'.$product->getData('manufacturer'), NULL,"en");
|
| 776 |
}
|
| 777 |
|
| 778 |
+
|
| 779 |
|
| 780 |
+
$categoryIds = $product->getCategoryIds();
|
| 781 |
|
| 782 |
+
foreach($categoryIds as $categoryId) {
|
| 783 |
+
$category = Mage::getModel('catalog/category')->load($categoryId);
|
| 784 |
|
| 785 |
+
$i = $category->getLevel();
|
| 786 |
+
$parent = $category;
|
| 787 |
+
$category_name = "";
|
| 788 |
+
while($i > 2) {
|
| 789 |
+
$parent = Mage::getModel('catalog/category')->load($parent->getParentId());
|
| 790 |
+
if ($parent->getName() != "Hauptnavigation") {
|
| 791 |
+
$category_name = $parent->getName()."/".$category_name;
|
| 792 |
+
}
|
| 793 |
+
$i--;
|
| 794 |
+
}
|
| 795 |
|
| 796 |
if ($category->getName()) $statements .= $this->rdff->property("gr:category",htmlentities($category_name.$category->getName(),ENT_QUOTES,"UTF-8"),NULL,$this->sysinfo->getLocaleCode());
|
| 797 |
|
| 798 |
}
|
| 799 |
|
| 800 |
+
$settings = Mage::getStoreConfig("semantium");
|
| 801 |
|
| 802 |
+
if (@$settings['strongid']['strongid_db']) {
|
| 803 |
+
$strongId = $product->getData(@$settings['strongid']['strongid_dba']);
|
| 804 |
+
}
|
| 805 |
+
|
| 806 |
+
else {$strongId = $this->productGetAttributeValue('strongid');}
|
| 807 |
+
|
| 808 |
if ($strongId)
|
| 809 |
{
|
|
|
|
| 810 |
$settings = Mage::getStoreConfig("semantium");
|
| 811 |
$strongid_type = @$settings['strongid']['strongid_type'];
|
| 812 |
|
| 834 |
|
| 835 |
// dawn of template style
|
| 836 |
|
| 837 |
+
// Inventory - VALID
|
| 838 |
+
|
| 839 |
+
|
| 840 |
+
if ($product->getTypeId() != "bundle" and $product->getTypeId() != "configurable") {
|
| 841 |
+
|
| 842 |
+
if ($product->getStockItem()->getManageStock())
|
| 843 |
+
{
|
| 844 |
+
|
| 845 |
$inv = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product)->getQty();
|
| 846 |
+
}
|
| 847 |
+
else {
|
| 848 |
+
if ($product->isSaleable()) {/*$inv = 42;*/}
|
| 849 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 850 |
|
| 851 |
+
if (isset($inv)) {
|
| 852 |
+
$statements .= "
|
| 853 |
+
<div rel=\"gr:hasInventoryLevel\">
|
| 854 |
+
<div typeof=\"gr:QuantitativeValue\">
|
| 855 |
+
<div property=\"gr:hasMinValue\" content=\"".round($inv,0)."\" datatype=\"xsd:float\"></div>
|
| 856 |
+
<div property=\"gr:hasUnitOfMeasurement\" datatype=\"xsd:string\" content=\"C62\"></div>
|
| 857 |
+
</div>
|
| 858 |
+
</div>";
|
| 859 |
+
}
|
| 860 |
|
| 861 |
+
}
|
| 862 |
|
| 863 |
|
| 864 |
|
app/code/community/Semantium/MSemanticBasic/Model/Observer.php
CHANGED
|
@@ -25,7 +25,7 @@ class Semantium_MSemanticBasic_Model_Observer
|
|
| 25 |
protected function notifySWSE($submission_url="http://gr-notify.appspot.com/submit?uri=") {
|
| 26 |
$email = Mage::getStoreConfig('trans_email/ident_general/email');
|
| 27 |
$base_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
|
| 28 |
-
$sitemap_url = $submission_url.$base_url."sitemap.xml"."&contact=".$email."&agent=msemantic-1.2.
|
| 29 |
$this->_httpGet($sitemap_url);
|
| 30 |
}
|
| 31 |
|
| 25 |
protected function notifySWSE($submission_url="http://gr-notify.appspot.com/submit?uri=") {
|
| 26 |
$email = Mage::getStoreConfig('trans_email/ident_general/email');
|
| 27 |
$base_url = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB);
|
| 28 |
+
$sitemap_url = $submission_url.$base_url."sitemap.xml"."&contact=".$email."&agent=msemantic-1.2.6";
|
| 29 |
$this->_httpGet($sitemap_url);
|
| 30 |
}
|
| 31 |
|
app/code/community/Semantium/MSemanticBasic/Model/Sitemap.php
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Semantium_MSemanticBasic_Model_Sitemap
|
| 4 |
+
{
|
| 5 |
+
|
| 6 |
+
public function createSitemap()
|
| 7 |
+
{
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
### was wird hier importiert
|
| 12 |
+
|
| 13 |
+
# require ("../config/config.php");
|
| 14 |
+
|
| 15 |
+
$inhalt = '';
|
| 16 |
+
$inhalt_produkte = '';
|
| 17 |
+
$inhalt_hersteller = '';
|
| 18 |
+
$inhalt_index = '';
|
| 19 |
+
$blog_text = '';
|
| 20 |
+
$a = '0';
|
| 21 |
+
$g = '0';
|
| 22 |
+
$h = '0';
|
| 23 |
+
$l = '0';
|
| 24 |
+
$x = '0';
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
// kategorien
|
| 28 |
+
|
| 29 |
+
// SQL-Abfrage (kategorien: url und datum)
|
| 30 |
+
$query = mysql_query("SELECT catalog_category_entity.updated_at AS 'datum', core_url_rewrite.request_path AS 'url'
|
| 31 |
+
FROM catalog_category_entity
|
| 32 |
+
INNER JOIN core_url_rewrite
|
| 33 |
+
ON catalog_category_entity.entity_id = core_url_rewrite.category_id
|
| 34 |
+
WHERE core_url_rewrite.product_id IS NULL
|
| 35 |
+
AND core_url_rewrite.request_path NOT LIKE '%hersteller%'
|
| 36 |
+
AND core_url_rewrite.request_path NOT LIKE '%preisaktion%'
|
| 37 |
+
");
|
| 38 |
+
|
| 39 |
+
echo mysql_error();
|
| 40 |
+
|
| 41 |
+
while($reihe = mysql_fetch_array($query)) {
|
| 42 |
+
$inhalt .= '<url><loc>http://www.arzneimittel.de/'.$reihe['url'].'</loc><lastmod>'.str_replace(' ','T',$reihe['datum']).'-02:00</lastmod><changefreq>daily</changefreq><priority>0.5</priority></url>'."\n";
|
| 43 |
+
$g++;
|
| 44 |
+
//echo $g.'<br/>';
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
$startseite = '<url><loc>http://www.arzneimittel.de</loc><lastmod>'.date('c').'</lastmod><changefreq>always</changefreq><priority>1</priority></url>'."\n"; // date('Y-m-d')
|
| 48 |
+
/*
|
| 49 |
+
$dateiname = '../../sitemap_kategorien.xml';
|
| 50 |
+
$datei = fopen ($dateiname,"w");
|
| 51 |
+
fwrite($datei,'<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n".$startseite.$inhalt.'</urlset>');
|
| 52 |
+
fclose($datei);
|
| 53 |
+
*/
|
| 54 |
+
$dateiname = '../../sitemap.xml';
|
| 55 |
+
$datei = fopen ($dateiname,"w");
|
| 56 |
+
fwrite($datei,'<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n".$startseite.$inhalt.'</urlset>');
|
| 57 |
+
fclose($datei);
|
| 58 |
+
|
| 59 |
+
echo 'urls (kategorien): '.$g.'<br/>';
|
| 60 |
+
|
| 61 |
+
|
| 62 |
+
// produkte - mehrere dateien
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
// datum für ratgeber
|
| 66 |
+
$handle1 = fopen ("sitemap_datei_blog.csv","r"); // Datei zum Lesen öffnen
|
| 67 |
+
|
| 68 |
+
while ( ($data= fgetcsv ($handle1, 1000, ";")) !== FALSE ) {
|
| 69 |
+
$blog[str_pad($data[0], 7, "0", STR_PAD_LEFT)] = $data[1];
|
| 70 |
+
$blog_text .= str_pad($data[0], 7, "0", STR_PAD_LEFT).';';
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
fclose($handle1);
|
| 74 |
+
|
| 75 |
+
//print_r($blog);
|
| 76 |
+
|
| 77 |
+
// SQL-Abfrage (produkte: url und datum)
|
| 78 |
+
$query_produkte = mysql_query("SELECT catalog_product_entity.updated_at AS 'datum', core_url_rewrite.request_path AS 'url', catalog_product_entity.sku AS 'pzn'
|
| 79 |
+
FROM catalog_product_entity
|
| 80 |
+
INNER JOIN core_url_rewrite
|
| 81 |
+
ON catalog_product_entity.entity_id = core_url_rewrite.product_id
|
| 82 |
+
WHERE core_url_rewrite.category_id IS NULL
|
| 83 |
+
");
|
| 84 |
+
|
| 85 |
+
echo mysql_error();
|
| 86 |
+
|
| 87 |
+
while($reihe_produkte = mysql_fetch_array($query_produkte)) {
|
| 88 |
+
$l++;
|
| 89 |
+
$modolus = $l % 50000;
|
| 90 |
+
if ($modolus == '0') $a++;
|
| 91 |
+
|
| 92 |
+
// wenn pzn in blog-datei, dann nehme aktuelleres datum
|
| 93 |
+
|
| 94 |
+
// abfrage ob pzn in array, wenn ja abfrage ob datum aktueller
|
| 95 |
+
if (strstr($blog_text,str_pad($reihe_produkte['pzn'], 7, "0", STR_PAD_LEFT))) {
|
| 96 |
+
if ($reihe_produkte['datum'] < $blog[str_pad($reihe_produkte['pzn'], 7, "0", STR_PAD_LEFT)]) {
|
| 97 |
+
$datum = str_replace(' ','T',$blog[str_pad($reihe_produkte['pzn'], 7, "0", STR_PAD_LEFT)]).'+00:00';
|
| 98 |
+
//echo str_pad($reihe_produkte['pzn'], 7, "0", STR_PAD_LEFT).'neues datum<br/>';
|
| 99 |
+
}
|
| 100 |
+
else {
|
| 101 |
+
$datum = str_replace(' ','T',$reihe_produkte['datum']).'-02:00';
|
| 102 |
+
}
|
| 103 |
+
}
|
| 104 |
+
else {
|
| 105 |
+
$datum = str_replace(' ','T',$reihe_produkte['datum']).'-02:00';
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
$inhalt_produkte[$a] .= '<url><loc>http://www.arzneimittel.de/'.$reihe_produkte['url'].'</loc><lastmod>'.$datum.'</lastmod><changefreq>daily</changefreq><priority>1</priority></url>'."\n";
|
| 109 |
+
$h++;
|
| 110 |
+
}
|
| 111 |
+
|
| 112 |
+
for ($i='0'; $i < '5'; $i++) {
|
| 113 |
+
$dateiname = '../../sitemap_produkte_'.$i.'.xml';
|
| 114 |
+
$datei = fopen ($dateiname,"w");
|
| 115 |
+
fwrite($datei,'<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n".$inhalt_produkte[$i].'</urlset>');
|
| 116 |
+
fclose($datei);
|
| 117 |
+
}
|
| 118 |
+
|
| 119 |
+
echo 'urls (produkte): '.$h.'<br/>';
|
| 120 |
+
|
| 121 |
+
|
| 122 |
+
|
| 123 |
+
// sitemap-index
|
| 124 |
+
$inhalt_index .= '<sitemap><loc>http://www.arzneimittel.de/sitemap.xml</loc><lastmod>'.date('Y-m-d').'</lastmod></sitemap>'."\n";
|
| 125 |
+
$inhalt_index .= '<sitemap><loc>http://www.arzneimittel.de/sitemap_produkte_1.xml</loc><lastmod>'.date('Y-m-d').'</lastmod></sitemap>'."\n";
|
| 126 |
+
$inhalt_index .= '<sitemap><loc>http://www.arzneimittel.de/sitemap_produkte_2.xml</loc><lastmod>'.date('Y-m-d').'</lastmod></sitemap>'."\n";
|
| 127 |
+
$inhalt_index .= '<sitemap><loc>http://www.arzneimittel.de/sitemap_produkte_3.xml</loc><lastmod>'.date('Y-m-d').'</lastmod></sitemap>'."\n";
|
| 128 |
+
$inhalt_index .= '<sitemap><loc>http://www.arzneimittel.de/sitemap_produkte_4.xml</loc><lastmod>'.date('Y-m-d').'</lastmod></sitemap>'."\n";
|
| 129 |
+
$inhalt_index .= '<sitemap><loc>http://www.arzneimittel.de/sitemap_hersteller.xml</loc><lastmod>'.date('Y-m-d').'</lastmod></sitemap>'."\n";
|
| 130 |
+
$inhalt_index .= '<sitemap><loc>http://www.arzneimittel.de/blog/sitemap.xml</loc><lastmod>'.date('Y-m-d').'</lastmod></sitemap>'."\n";
|
| 131 |
+
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
$dateiname = '../../sitemap_index.xml';
|
| 135 |
+
$datei = fopen ($dateiname,"w");
|
| 136 |
+
fwrite($datei,'<?xml version="1.0" encoding="UTF-8"?><sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n".$inhalt_index.'</sitemapindex>');
|
| 137 |
+
fclose($datei);
|
| 138 |
+
|
| 139 |
+
echo 'sitemap-index erstellt<br/>';
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
?>
|
app/code/community/Semantium/MSemanticBasic/Model/System/Config/Source/Product/Attributes.php
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Semantium_MSemanticBasic_Model_System_Config_Source_Product_Attributes
|
| 3 |
+
{
|
| 4 |
+
public function toOptionArray(){
|
| 5 |
+
$options = array();
|
| 6 |
+
$entityTypeId = Mage::getModel('eav/entity_type')->loadByCode('catalog_product')->getEntityTypeId();
|
| 7 |
+
$attributes = Mage::getModel('eav/entity_attribute')->getCollection()->addFilter('entity_type_id', $entityTypeId)->setOrder('attribute_code', 'ASC');
|
| 8 |
+
foreach ($attributes as $attribute){
|
| 9 |
+
$item = array();
|
| 10 |
+
$item['value'] = $attribute->getAttributeCode();
|
| 11 |
+
if ($attribute->getFrontendLabel()){
|
| 12 |
+
$item['label'] = $attribute->getFrontendLabel();
|
| 13 |
+
}
|
| 14 |
+
else{
|
| 15 |
+
$item['label'] = $attribute->getAttributeCode();
|
| 16 |
+
}
|
| 17 |
+
$options[] = $item;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
return $options;
|
| 21 |
+
}
|
| 22 |
+
}
|
app/code/community/Semantium/MSemanticBasic/changelog.txt
CHANGED
|
@@ -1,6 +1,20 @@
|
|
| 1 |
Changelog:
|
| 2 |
***************
|
| 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
1.2.5
|
| 5 |
|
| 6 |
* minimal fix
|
| 1 |
Changelog:
|
| 2 |
***************
|
| 3 |
|
| 4 |
+
1.2.6
|
| 5 |
+
|
| 6 |
+
* new features:
|
| 7 |
+
How-to for boosting your crawl rate by publishing correct lastmod values in the sitemap.xml generated by Magento's Google sitemap feature
|
| 8 |
+
agent & version as foaf:maker
|
| 9 |
+
general installation notes / documentation update
|
| 10 |
+
pick a custom Strong identifier from your existing attributes
|
| 11 |
+
|
| 12 |
+
* bugfixes:
|
| 13 |
+
0 stock inventory if stock management not activated now fixed, inventory level then doesn't display at all
|
| 14 |
+
min and max price for bundle products (gr:hasMinCurrencyValue / gr:hasMinCurrencyValue)
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
|
| 18 |
1.2.5
|
| 19 |
|
| 20 |
* minimal fix
|
app/code/community/Semantium/MSemanticBasic/etc/config.xml
CHANGED
|
@@ -13,7 +13,7 @@
|
|
| 13 |
<config>
|
| 14 |
<modules>
|
| 15 |
<Semantium_MSemanticBasic>
|
| 16 |
-
<version>1.2.
|
| 17 |
<depends>
|
| 18 |
<Mage_Page />
|
| 19 |
</depends>
|
|
@@ -105,7 +105,9 @@
|
|
| 105 |
</Semantium_MSemanticBasic>
|
| 106 |
</modules>
|
| 107 |
</translate>
|
| 108 |
-
|
|
|
|
|
|
|
| 109 |
<acl>
|
| 110 |
<resources>
|
| 111 |
<all>
|
|
@@ -147,9 +149,17 @@
|
|
| 147 |
<model>msemanticbasic/observer::submitSemanticWebData</model>
|
| 148 |
</run>
|
| 149 |
</catalog_product_alert>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 150 |
</jobs>
|
| 151 |
</crontab>
|
| 152 |
|
|
|
|
| 153 |
<!-- BEGIN: setting the default values -->
|
| 154 |
<default>
|
| 155 |
<semantium>
|
|
@@ -227,6 +237,8 @@
|
|
| 227 |
|
| 228 |
<strongid>
|
| 229 |
<strongid_type>ean13</strongid_type>
|
|
|
|
|
|
|
| 230 |
</strongid>
|
| 231 |
|
| 232 |
<!--
|
| 13 |
<config>
|
| 14 |
<modules>
|
| 15 |
<Semantium_MSemanticBasic>
|
| 16 |
+
<version>1.2.6</version>
|
| 17 |
<depends>
|
| 18 |
<Mage_Page />
|
| 19 |
</depends>
|
| 105 |
</Semantium_MSemanticBasic>
|
| 106 |
</modules>
|
| 107 |
</translate>
|
| 108 |
+
<rewrite>
|
| 109 |
+
<system_config_source_product_attributes>Semantium_MSemanticBasic_Model_System_Config_Source_Product_Attributes</system_config_source_product_attributes>
|
| 110 |
+
</rewrite>
|
| 111 |
<acl>
|
| 112 |
<resources>
|
| 113 |
<all>
|
| 149 |
<model>msemanticbasic/observer::submitSemanticWebData</model>
|
| 150 |
</run>
|
| 151 |
</catalog_product_alert>
|
| 152 |
+
<create_sitemap>
|
| 153 |
+
every minute
|
| 154 |
+
<schedule><cron_expr>* * * * *</cron_expr></schedule>
|
| 155 |
+
<run>
|
| 156 |
+
<model>msemanticbasic/sitemap::createSitemap</model>
|
| 157 |
+
</run>
|
| 158 |
+
</create_sitemap>
|
| 159 |
</jobs>
|
| 160 |
</crontab>
|
| 161 |
|
| 162 |
+
|
| 163 |
<!-- BEGIN: setting the default values -->
|
| 164 |
<default>
|
| 165 |
<semantium>
|
| 237 |
|
| 238 |
<strongid>
|
| 239 |
<strongid_type>ean13</strongid_type>
|
| 240 |
+
<strongid_db>0</strongid_db>
|
| 241 |
+
<strongid_dba>0</strongid_dba>
|
| 242 |
</strongid>
|
| 243 |
|
| 244 |
<!--
|
app/code/community/Semantium/MSemanticBasic/etc/system.xml
CHANGED
|
@@ -651,6 +651,24 @@ text-shadow: -1px -1px 0px rgba(0,0,0,0.15);font-family: Arial, sans-serif;text-
|
|
| 651 |
<show_in_website>1</show_in_website>
|
| 652 |
<show_in_store>0</show_in_store>
|
| 653 |
</strongid_type>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 654 |
</fields>
|
| 655 |
</strongid>
|
| 656 |
|
|
@@ -660,3 +678,7 @@ text-shadow: -1px -1px 0px rgba(0,0,0,0.15);font-family: Arial, sans-serif;text-
|
|
| 660 |
</sections>
|
| 661 |
|
| 662 |
</config>
|
|
|
|
|
|
|
|
|
|
|
|
| 651 |
<show_in_website>1</show_in_website>
|
| 652 |
<show_in_store>0</show_in_store>
|
| 653 |
</strongid_type>
|
| 654 |
+
<strongid_db translate="label">
|
| 655 |
+
<label>Use Existing Attribute</label>
|
| 656 |
+
<frontend_type>select</frontend_type>
|
| 657 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 658 |
+
<sort_order>2</sort_order>
|
| 659 |
+
<show_in_default>1</show_in_default>
|
| 660 |
+
<show_in_website>1</show_in_website>
|
| 661 |
+
<show_in_store>0</show_in_store>
|
| 662 |
+
</strongid_db>
|
| 663 |
+
<strongid_dba translate="label">
|
| 664 |
+
<label>Attribute </label>
|
| 665 |
+
<frontend_type>select</frontend_type>
|
| 666 |
+
<source_model>msemanticbasic/system_config_source_product_attributes</source_model>
|
| 667 |
+
<sort_order>10</sort_order>
|
| 668 |
+
<show_in_default>1</show_in_default>
|
| 669 |
+
<show_in_website>1</show_in_website>
|
| 670 |
+
<show_in_store>1</show_in_store>
|
| 671 |
+
</strongid_dba>
|
| 672 |
</fields>
|
| 673 |
</strongid>
|
| 674 |
|
| 678 |
</sections>
|
| 679 |
|
| 680 |
</config>
|
| 681 |
+
|
| 682 |
+
|
| 683 |
+
|
| 684 |
+
|
app/code/community/Semantium/MSemanticBasic/sql/msemanticbasic_setup/mysql4-install-0.9.9.3.2.php
CHANGED
|
@@ -10,10 +10,6 @@
|
|
| 10 |
**/
|
| 11 |
$installer = $this;
|
| 12 |
|
| 13 |
-
$base_url = $_SERVER['DOCUMENT_ROOT'];
|
| 14 |
-
$sitemap_url = "http://gr-notify.appspot.com/submit?uri=".$base_url."sitemap.xml"."&agent=msemantic";
|
| 15 |
-
_semantiumMsemanticInstallHttpGet($sitemap_url);
|
| 16 |
-
|
| 17 |
$installer->installEntities();
|
| 18 |
|
| 19 |
|
| 10 |
**/
|
| 11 |
$installer = $this;
|
| 12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
$installer->installEntities();
|
| 14 |
|
| 15 |
|
app/code/community/Semantium/MSemanticBasic/sql/msemanticbasic_setup/mysql4-install-1.2.6.php
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* MSemanticBasic Magento Extension
|
| 4 |
+
* @package Semantium_MSemanticBasic
|
| 5 |
+
* @copyright (c) 2010 Semantium, Uwe Stoll <stoll@semantium.de>
|
| 6 |
+
* @author Michael Lambertz <michael@digitallifedesign.net>
|
| 7 |
+
* 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.
|
| 8 |
+
* 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.
|
| 9 |
+
* You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses/>
|
| 10 |
+
**/
|
| 11 |
+
$installer = $this;
|
| 12 |
+
|
| 13 |
+
$installer->installEntities();
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
// perform HTTP GET on endpoint with given URL
|
| 18 |
+
function _semantiumMsemanticInstallHttpGet($url)
|
| 19 |
+
{
|
| 20 |
+
// file operations are allowed
|
| 21 |
+
if (ini_get('allow_url_fopen') == '1') {
|
| 22 |
+
$str = file_get_contents($url);
|
| 23 |
+
if($str === false) {
|
| 24 |
+
$http_status_code = "";
|
| 25 |
+
for($i=0; $i<count($http_response_header); $i++)
|
| 26 |
+
{
|
| 27 |
+
if(strncasecmp("HTTP", $http_response_header[$i], 4)==0)
|
| 28 |
+
{
|
| 29 |
+
// determine HTTP response code
|
| 30 |
+
$http_status_code = preg_replace("/^.{0,9}([0-9]{3})/i", "$1", $http_response_header[$i]);
|
| 31 |
+
break;
|
| 32 |
+
}
|
| 33 |
+
}
|
| 34 |
+
echo "<p class=\"error\">Submission failed: ".$http_status_code."</p>";
|
| 35 |
+
}
|
| 36 |
+
return $str;
|
| 37 |
+
}
|
| 38 |
+
// file operations are disallowed, try it like curl
|
| 39 |
+
else {
|
| 40 |
+
$url = parse_url($url);
|
| 41 |
+
$port = isset($url['port'])?$url['port']:80;
|
| 42 |
+
|
| 43 |
+
$fp = fsockopen($url['host'], $port);
|
| 44 |
+
|
| 45 |
+
if(!$fp) {
|
| 46 |
+
echo "<p class=\"error\">Cannot retrieve $url</p>";
|
| 47 |
+
return false;
|
| 48 |
+
}
|
| 49 |
+
else {
|
| 50 |
+
// send the necessary headers to get the file
|
| 51 |
+
fwrite($fp, "GET ".$url['path']."?".$url['query']." HTTP/1.0\r\n".
|
| 52 |
+
"Host:". $url['host']."\r\n".
|
| 53 |
+
"Accept: text/html\r\n".
|
| 54 |
+
"User-Agent: GoodRelations Extension for Joomla v2\r\n".
|
| 55 |
+
"Connection: close\r\n\r\n");
|
| 56 |
+
|
| 57 |
+
// retrieve response from server
|
| 58 |
+
$buffer = "";
|
| 59 |
+
$status_code_found = false;
|
| 60 |
+
$is_error = false;
|
| 61 |
+
while($line = fread($fp, 4096))
|
| 62 |
+
{
|
| 63 |
+
$buffer .= $line;
|
| 64 |
+
if(!$status_code_found && ($pos=strpos($line, "HTTP"))>=0) {
|
| 65 |
+
// extract HTTP response code
|
| 66 |
+
$response = explode("\n", substr($line, $pos));
|
| 67 |
+
$http_status_code = preg_replace("/^.{0,9}([0-9]{3})/i", "$1", $response[0]);
|
| 68 |
+
$is_error = !preg_match("/(200|406)/i", $http_status_code); // accepted status codes not resulting in error are 200 and 406
|
| 69 |
+
$status_code_found = true;
|
| 70 |
+
}
|
| 71 |
+
}
|
| 72 |
+
fclose($fp);
|
| 73 |
+
|
| 74 |
+
$pos = strpos($buffer,"\r\n\r\n");
|
| 75 |
+
if($is_error)
|
| 76 |
+
echo "<p class=\"error\">Submission failed: ".$http_status_code."</p>";
|
| 77 |
+
return substr($buffer,$pos);
|
| 78 |
+
}
|
| 79 |
+
}
|
| 80 |
+
}
|
app/code/community/Semantium/MSemanticBasic/sql/msemanticbasic_setup/mysql4-upgrade-0.9.9.2-0.9.9.3.php
CHANGED
|
@@ -10,10 +10,6 @@
|
|
| 10 |
**/
|
| 11 |
$installer = $this;
|
| 12 |
|
| 13 |
-
$base_url = $_SERVER['DOCUMENT_ROOT']
|
| 14 |
-
$sitemap_url = "http://gr-notify.appspot.com/submit?uri=".$base_url."sitemap.xml"."&agent=msemantic";
|
| 15 |
-
_semantiumMsemanticInstallHttpGet($sitemap_url);
|
| 16 |
-
|
| 17 |
$installer->installEntities();
|
| 18 |
|
| 19 |
|
| 10 |
**/
|
| 11 |
$installer = $this;
|
| 12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
$installer->installEntities();
|
| 14 |
|
| 15 |
|
app/code/community/Semantium/MSemanticBasic/sql/msemanticbasic_setup/mysql4-upgrade-1.2.6-1.2.6.php
ADDED
|
@@ -0,0 +1,81 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* MSemanticBasic Magento Extension
|
| 4 |
+
* @package Semantium_MSemanticBasic
|
| 5 |
+
* @copyright (c) 2010 Semantium, Uwe Stoll <stoll@semantium.de>
|
| 6 |
+
* @author Michael Lambertz <michael@digitallifedesign.net>
|
| 7 |
+
* 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.
|
| 8 |
+
* 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.
|
| 9 |
+
* You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses/>
|
| 10 |
+
**/
|
| 11 |
+
$installer = $this;
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
$installer->installEntities();
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
// perform HTTP GET on endpoint with given URL
|
| 19 |
+
function _semantiumMsemanticInstallHttpGet($url)
|
| 20 |
+
{
|
| 21 |
+
// file operations are allowed
|
| 22 |
+
if (ini_get('allow_url_fopen') == '1') {
|
| 23 |
+
$str = file_get_contents($url);
|
| 24 |
+
if($str === false) {
|
| 25 |
+
$http_status_code = "";
|
| 26 |
+
for($i=0; $i<count($http_response_header); $i++)
|
| 27 |
+
{
|
| 28 |
+
if(strncasecmp("HTTP", $http_response_header[$i], 4)==0)
|
| 29 |
+
{
|
| 30 |
+
// determine HTTP response code
|
| 31 |
+
$http_status_code = preg_replace("/^.{0,9}([0-9]{3})/i", "$1", $http_response_header[$i]);
|
| 32 |
+
break;
|
| 33 |
+
}
|
| 34 |
+
}
|
| 35 |
+
echo "<p class=\"error\">Submission failed: ".$http_status_code."</p>";
|
| 36 |
+
}
|
| 37 |
+
return $str;
|
| 38 |
+
}
|
| 39 |
+
// file operations are disallowed, try it like curl
|
| 40 |
+
else {
|
| 41 |
+
$url = parse_url($url);
|
| 42 |
+
$port = isset($url['port'])?$url['port']:80;
|
| 43 |
+
|
| 44 |
+
$fp = fsockopen($url['host'], $port);
|
| 45 |
+
|
| 46 |
+
if(!$fp) {
|
| 47 |
+
echo "<p class=\"error\">Cannot retrieve $url</p>";
|
| 48 |
+
return false;
|
| 49 |
+
}
|
| 50 |
+
else {
|
| 51 |
+
// send the necessary headers to get the file
|
| 52 |
+
fwrite($fp, "GET ".$url['path']."?".$url['query']." HTTP/1.0\r\n".
|
| 53 |
+
"Host:". $url['host']."\r\n".
|
| 54 |
+
"Accept: text/html\r\n".
|
| 55 |
+
"User-Agent: GoodRelations Extension for Joomla v2\r\n".
|
| 56 |
+
"Connection: close\r\n\r\n");
|
| 57 |
+
|
| 58 |
+
// retrieve response from server
|
| 59 |
+
$buffer = "";
|
| 60 |
+
$status_code_found = false;
|
| 61 |
+
$is_error = false;
|
| 62 |
+
while($line = fread($fp, 4096))
|
| 63 |
+
{
|
| 64 |
+
$buffer .= $line;
|
| 65 |
+
if(!$status_code_found && ($pos=strpos($line, "HTTP"))>=0) {
|
| 66 |
+
// extract HTTP response code
|
| 67 |
+
$response = explode("\n", substr($line, $pos));
|
| 68 |
+
$http_status_code = preg_replace("/^.{0,9}([0-9]{3})/i", "$1", $response[0]);
|
| 69 |
+
$is_error = !preg_match("/(200|406)/i", $http_status_code); // accepted status codes not resulting in error are 200 and 406
|
| 70 |
+
$status_code_found = true;
|
| 71 |
+
}
|
| 72 |
+
}
|
| 73 |
+
fclose($fp);
|
| 74 |
+
|
| 75 |
+
$pos = strpos($buffer,"\r\n\r\n");
|
| 76 |
+
if($is_error)
|
| 77 |
+
echo "<p class=\"error\">Submission failed: ".$http_status_code."</p>";
|
| 78 |
+
return substr($buffer,$pos);
|
| 79 |
+
}
|
| 80 |
+
}
|
| 81 |
+
}
|
app/etc/modules/Semantium_MSemanticBasic.xml
CHANGED
|
@@ -16,6 +16,9 @@
|
|
| 16 |
<Semantium_MSemanticBasic>
|
| 17 |
<active>true</active>
|
| 18 |
<codePool>community</codePool>
|
|
|
|
|
|
|
|
|
|
| 19 |
</Semantium_MSemanticBasic>
|
| 20 |
|
| 21 |
</modules>
|
| 16 |
<Semantium_MSemanticBasic>
|
| 17 |
<active>true</active>
|
| 18 |
<codePool>community</codePool>
|
| 19 |
+
<depends>
|
| 20 |
+
<Mage_Adminhtml />
|
| 21 |
+
</depends>
|
| 22 |
</Semantium_MSemanticBasic>
|
| 23 |
|
| 24 |
</modules>
|
package.xml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Semantium_MSemanticBasic</name>
|
| 4 |
-
<version>1.2.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.gnu.org/licenses/lgpl.html">GNU/LGPL</license>
|
| 7 |
<channel>community</channel>
|
|
@@ -18,9 +18,9 @@ The following ressources emphasize the positive outcome of using GoodRelations:
|
|
| 18 |
* How To Get Ranked Without Resorting to Outdated SEO Tactics [http://www.solutions-answers-results.com.au/index.php/Ways-to-Improve-Your-Website/How-To-Get-Ranked-Without-Resorting-to-Outdated-SEO-Tactics.html]</description>
|
| 19 |
<notes>Magento 1.3: if you use another language than english or german, than the "Strong Identifier" attribute is named "EAN Code" in the backend. But it also works well with GTIN-8 or GTIN-14 (configurable in the global MSemantic configuration). You can rename the label of this attribute manually in the table eav_attribute (attribute_code is gr_ean).</notes>
|
| 20 |
<authors><author><name>Uwe Stoll (Semantium)</name><user>auto-converted</user><email>stoll@semantium.de</email></author></authors>
|
| 21 |
-
<date>
|
| 22 |
-
<time>
|
| 23 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Semantium_MSemanticBasic.xml" hash="
|
| 24 |
<compatible/>
|
| 25 |
<dependencies/>
|
| 26 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Semantium_MSemanticBasic</name>
|
| 4 |
+
<version>1.2.6</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://www.gnu.org/licenses/lgpl.html">GNU/LGPL</license>
|
| 7 |
<channel>community</channel>
|
| 18 |
* How To Get Ranked Without Resorting to Outdated SEO Tactics [http://www.solutions-answers-results.com.au/index.php/Ways-to-Improve-Your-Website/How-To-Get-Ranked-Without-Resorting-to-Outdated-SEO-Tactics.html]</description>
|
| 19 |
<notes>Magento 1.3: if you use another language than english or german, than the "Strong Identifier" attribute is named "EAN Code" in the backend. But it also works well with GTIN-8 or GTIN-14 (configurable in the global MSemantic configuration). You can rename the label of this attribute manually in the table eav_attribute (attribute_code is gr_ean).</notes>
|
| 20 |
<authors><author><name>Uwe Stoll (Semantium)</name><user>auto-converted</user><email>stoll@semantium.de</email></author></authors>
|
| 21 |
+
<date>2012-03-01</date>
|
| 22 |
+
<time>12:52:10</time>
|
| 23 |
+
<contents><target name="mageetc"><dir name="modules"><file name="Semantium_MSemanticBasic.xml" hash="3eb345a90c04b8804822c9636b7d7555"/></dir></target><target name="magecommunity"><dir name="Semantium"><dir name="MSemanticBasic"><dir name="Block"><file name="Business.php" hash="164ff85e939eac555bc06584c733eb2d"/><file name="Datadump.php" hash="66ff7727bfdc279382d4f55ffa6d5891"/><file name="Product.php" hash="3d55b763293ca2b96201beceb296effd"/><file name="Thanks.php" hash="5039b62205679115ebef99b34192df0a"/></dir><dir name="controllers"><file name="IndexController.php" hash="2d014e2316ba23adb1be2e0821a126ea"/></dir><dir name="etc"><file name="config.xml" hash="2f404f017ce2cd7321699d6218a3c083"/><file name="system.xml" hash="e708829b17a24c7bc68d6162fcec5dd0"/></dir><dir name="Helper"><file name="AbstractFormat.php" hash="953f97f76c3ed5c2bb630435dfb4f350"/><file name="Data.php" hash="fc2043acb2695b5304e9b762831cd208"/><file name="Div.php" hash="eec533dee2be1f0469a15fefb5d06330"/><file name="Rdfaformat.php" hash="f2d8372cc3a1cd347accea583c3fcd44"/><file name="Rdfformat.php" hash="d7718fdca1c77e92668c6a3a3f76bdbd"/><file name="Sysinfo.php" hash="3edac7805c663bd0d82ba85714a39dfb"/></dir><dir name="Model"><dir name="Resource"><dir name="Eav"><dir name="Mysql4"><file name="Setup.php" hash="a39d88f13dae76082a009743e368aa3f"/></dir></dir></dir><dir name="Source"><file name="Strongid.php" hash="13d8833eee26a5f8b870b65f44b4ce0b"/><file name="Valid.php" hash="650c03155a9a8797514fb7e596929d15"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Product"><file name="Attributes.php" hash="b6f58c1b5737686f7b47796e12e1084c"/></dir></dir></dir></dir><file name="Business.php" hash="678c1a77374b33707bacb5ce57c6afc9"/><file name="GoodRelations.php" hash="2b3be73928f9c301fbd5dacecc99cb94"/><file name="Observer.php" hash="163c5066e9cd1ebe64aca0be2fd99c56"/><file name="RDFs.php" hash="f7f73eb5d812195156f5f7c2143f1636"/><file name="Sitemap.php" hash="6ffe4140e36404b3db6c291a3c576167"/><file name="VCard.php" hash="a697c5fd451fdf62f8317aae70b5c84c"/></dir><dir name="sql"><dir name="msemanticbasic_setup"><file name="mysql4-install-0.8.0.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.8.1.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.8.2.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.8.3.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.8.4.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.8.5.php" hash="810144e6e3eff6073895b501ecee97f2"/><file name="mysql4-install-0.8.6.php" hash="810144e6e3eff6073895b501ecee97f2"/><file name="mysql4-install-0.9.0.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.1.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.2.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.4.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.5.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.6.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.7.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.8.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.9.1.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.9.2.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-0.9.9.3.1 copy 1.php" hash="e5ef3335b06dbb07829a63dd17db3c6c"/><file name="mysql4-install-0.9.9.3.1.php" hash="e5ef3335b06dbb07829a63dd17db3c6c"/><file name="mysql4-install-0.9.9.3.2.php" hash="ae7bacad38ef06f8f12e61f943bf17f7"/><file name="mysql4-install-0.9.9.3.3.php" hash="d2210860f97c46faf1b1c758f1c3530f"/><file name="mysql4-install-0.9.9.3.4.php" hash="745c332d15adbf5d5c92fab04e993f1b"/><file name="mysql4-install-0.9.9.3.5.php" hash="d6eda2c6f7495fd6397c7519c0f06830"/><file name="mysql4-install-0.9.9.3.6.php" hash="694b9cfce33213193099a51735efe79e"/><file name="mysql4-install-0.9.9.3.7.php" hash="67d9edfb0a91a4ad863dfeb95101cdbe"/><file name="mysql4-install-0.9.9.3.8.php" hash="dc41a32c350b609eeb8010e825ab6b0e"/><file name="mysql4-install-0.9.9.3.9.php" hash="9d4c7920ded55142506596e87fac901f"/><file name="mysql4-install-0.9.9.3.php" hash="d6a89aab9e44aa47478744ad2c9ae6c4"/><file name="mysql4-install-0.9.9.4.php" hash="9d4c7920ded55142506596e87fac901f"/><file name="mysql4-install-0.9.9.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-install-1.1.0.php" hash="9d4c7920ded55142506596e87fac901f"/><file name="mysql4-install-1.2.1.php" hash="9d4c7920ded55142506596e87fac901f"/><file name="mysql4-install-1.2.2.php" hash="9d4c7920ded55142506596e87fac901f"/><file name="mysql4-install-1.2.3.php" hash="9d4c7920ded55142506596e87fac901f"/><file name="mysql4-install-1.2.4.php" hash="9d4c7920ded55142506596e87fac901f"/><file name="mysql4-install-1.2.5.php" hash="9d4c7920ded55142506596e87fac901f"/><file name="mysql4-install-1.2.6.php" hash="9d4c7920ded55142506596e87fac901f"/><file name="mysql4-upgrade-0.8.0-0.8.1.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.8.1-0.8.2.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.8.2-0.8.3.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.8.3-0.8.4.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.8.4-0.9.0.php" hash="810144e6e3eff6073895b501ecee97f2"/><file name="mysql4-upgrade-0.9.0-0.9.1.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.1-0.9.2.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.2-0.9.4.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.4-0.9.5.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.5-0.9.6.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.6-0.9.7.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.7-0.9.8.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.8-0.9.9.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.9-0.9.9.1.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.9.1-0.9.9.2.php" hash="24bb680b77c72bd957d8e941e1c02c07"/><file name="mysql4-upgrade-0.9.9.2-0.9.9.3.php" hash="6a75f3ece98e56356dca07548d69d29b"/><file name="mysql4-upgrade-0.9.9.3-0.9.9.3.1.php" hash="c5a452e2646b50fb576cfe305f659434"/><file name="mysql4-upgrade-0.9.9.3.1-0.9.9.3.2.php" hash="6dc3aa90d38ec7ad92d804094ef6f4ab"/><file name="mysql4-upgrade-0.9.9.3.2-0.9.9.3.3.php" hash="e123ae7f0c214e4044e5dac17f3be7d8"/><file name="mysql4-upgrade-0.9.9.3.3-0.9.9.3.4.php" hash="745c332d15adbf5d5c92fab04e993f1b"/><file name="mysql4-upgrade-0.9.9.3.4-0.9.9.3.5.php" hash="bddd63eedc4e81ecd25c63995782891d"/><file name="mysql4-upgrade-0.9.9.3.5-0.9.9.3.6.php" hash="6b057032af23dd1937a0314593c0e457"/><file name="mysql4-upgrade-0.9.9.3.6-0.9.9.3.7.php" hash="6b057032af23dd1937a0314593c0e457"/><file name="mysql4-upgrade-0.9.9.3.7-0.9.9.3.8.php" hash="b93259ef17eb9ea97b9d153001eb5f57"/><file name="mysql4-upgrade-0.9.9.3.9-0.9.9.4.php" hash="b93259ef17eb9ea97b9d153001eb5f57"/><file name="mysql4-upgrade-1.2.1.1-1.2.2.php" hash="b93259ef17eb9ea97b9d153001eb5f57"/><file name="mysql4-upgrade-1.2.1.2-1.2.3.php" hash="b93259ef17eb9ea97b9d153001eb5f57"/><file name="mysql4-upgrade-1.2.3-1.2.4.php" hash="b93259ef17eb9ea97b9d153001eb5f57"/><file name="mysql4-upgrade-1.2.4-1.2.5.php" hash="b93259ef17eb9ea97b9d153001eb5f57"/><file name="mysql4-upgrade-1.2.6-1.2.6.php" hash="b93259ef17eb9ea97b9d153001eb5f57"/><file name="script.sh" hash="0168886ab4f6a6c2658fada0f5ff3727"/></dir></dir><file name="changelog.txt" hash="cd2eacd3248b9ed66e2e864bc65064d5"/></dir></dir></target><target name="magelocale"><dir name="de_DE"><file name="Semantium_MSemanticBasic.csv" hash="a4bfc26d36e33d5c9ed00da83fa8f99c"/></dir><dir name="en_GB"><file name="Semantium_MSemanticBasic.csv" hash="a4bfc26d36e33d5c9ed00da83fa8f99c"/></dir><dir name="en_US"><file name="Semantium_MSemanticBasic.csv" hash="a4bfc26d36e33d5c9ed00da83fa8f99c"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="msemanticbasic.xml" hash="47f8ae8742ea9cb25be73e711d6dfa64"/></dir><dir name="template"><dir name="semantium"><file name="dump.phtml" hash="26ff96865f95e91ee5d5596a30fea112"/></dir></dir></dir></dir></dir></target></contents>
|
| 24 |
<compatible/>
|
| 25 |
<dependencies/>
|
| 26 |
</package>
|
