Modulation of energy levels by donor groups: an effective approach for optimizing the efficiency of zinc-porphyrin based solar cells